加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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++)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读