基本上,数组的最大大小为10,并且允许用户输入最多10个值。如果用户输入-1或0,则在输入十个值之前,循环将停止并进入下一个循环。我的问题是,直到输入10个值,它才能正常工作。结果将除以9而不是10,并打印出数组中有9个值。
#include <stdio.h>
int main(void)
{
float numbers[10];
int i;
int n;
int count =0;
for(i = 0; i<10; i++)
{
scanf("%f", &numbers[i]);
if(numbers[i] == -1)
break;
if(numbers[i] == 0)
break;
count++;
}
n = count-1;
float sum = 0;
float average;
for(i = 0; i<=n; i++)
{
sum = sum + numbers[i];
}
average = sum/count;
printf("The average price of the %d products is %.2f.\n", count, average);
return 0;
} //this is the fixed solution.
我很确定这是因为这条线
n = count-1
您能解释一下为什么要减去1吗?在您输入10个数字的情况下,count将等于10。在减去1之后,您将仅循环访问数组中的前9个索引。
如果需要减去1(以说明用户输入0或-1),则将最后一个for循环中的条件改为<=。
for(i = 0; i<=n; i++)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句