【发布时间】:2026-01-09 03:45:01
【问题描述】:
我正在为学校做编程作业, (只需要我原始代码的一部分的帮助,而不是作业求解器,谢谢。) 而我的函数 findHighest() 无法正常工作。我相信它只有零,而不是存储传递给它的双精度值的数组。 我需要帮助来解决这个问题。 谢谢
int main()
{
double nEast = 0, sEast = 0, nWest = 0, sWest = 0;
cout << "\n\n\t\tQuarterly Sales Report by region\n";
cout << "\n\nNorth East region:\n" ;
nEast = getSales(nEast);
cout << "\n\nSouth East region:\n";
sEast = getSales(sEast);
cout << "\n\nNorth West region:\n";
nWest = getSales(nWest);
cout << "\n\nSouth West region:\n";
sWest = getSales(sWest);
findHighest(nEast, sEast, nWest, sWest);
return 0;
}
void findHighest (double nEast, double sEast, double nWest, double sWest)
{
double regions[4] = {nEast, sEast, nWest, sWest};
double temp = 0;
for(int i = 0; i <= 3;)
{
if(regions[i] >= temp)
{
temp = regions[i];
cout << temp;
i++;
}
}
cout << "The biggest number is: " << temp << endl;
}
【问题讨论】:
-
你为什么要在一个奇怪的地方增加你的
i? -
您是否在调用
findHighest之前验证了变量已设置为您期望的值? -
@Isaiah:如果
i不递增,则循环不会终止。 -
如果区域尚未按升序排序,则您的
i循环是无限的 -
@Isaiah:在所有类 C 语言中,
for循环不会自动增加计数器。事实上,for没有添加while循环无法做到的功能。