c – 程序不适用于数组中的10个值
发布时间:2020-12-16 10:13:48 所属栏目:百科 来源:网络整理
导读:基本上,数组的最大大小为10,允许用户输入最多10个值.如果用户输入-1或0,则在输入十个值之前,循环停止并进入下一个循环.我的问题是它完美地工作直到输入10个值.结果将除以9而不是10,并打印出数组中有9个值. #include stdio.hint main(void){ float numbers[10
基本上,数组的最大大小为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++) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |