尝试在c中编写一个可以输入大量数字的程序。即/*This code moves the variables x and y around the outside of a square counterclockwise starting from the origin.*/
for(y=0,x=0,x<width;x++);
for(,y<width;y++);
for(,x>0;x--);
for(,y>0;y--);
,并返回大小,最大值,最小值,平均值和标准差。
在计算[ for(y=0,x=0,x<width;x++), for(,y<width;y++), for(,x>0;x--), for(,y>0;y--) ]
{
//Do something over the perimeter of the square E.g. color in a pixel
}
(第51行)时尝试计算标准差时,它开始返回inf。
不知道为什么我会通过添加功能获得inf。
我有所有的打印方法来尝试识别它的中断位置。
1, 2, 3, 4
答案 0 :(得分:2)
您初始化
int counter = 0;
并在你的第一个循环中执行
average = (float)(sum/counter); // In the first loop count is zero, i.e. divide by zero
counter++;
所以你除以零,这导致inf
只需切换如下行:
counter++;
average = (float)(sum/counter);