为什么错了呀,为什么结果是6

为什么这样执行下来结果是6,到底是哪里错了,希望给位可以指点一下。

img

img

img

因为程序代码有问题,
1.输入成绩那里有错误。
2.count没有给初始值0
代码修改如下图所示:

#include <stdio.h>

int main(void)
{   
    int n,count=0,i;
    char a[40];

    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++)
    {
        if(a[i]<60)
            count+=1;
    }
    printf("count=%d\n",count);
    return 0;
}

你的数组的类型定义错了,应该是int型的数组

int main()
{
    int n = 0, count = 0;//进行初始化
    int a[40] = { 0 };//最好对数组进行初始化
    scanf("%d", &n);
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);//从键盘上获得成绩并放入数组中
    }
    for (int i = 0; i < n; i++)
    {
        if (a[i] < 60)
        {
            count++;
        }
    }
    printf("%d", count);
    return 0;
}

img


可以直接把代码简化为:

int main()
{
    int n = 0;
    int count = 0;
    scanf("%d", &n);
    for (int i = 0; i < n; i++)
    {
        int a = 0;//创建变量a用来接收成绩,每次进循环都会对a的值进行更新
        scanf("%d", &a);
        if (a < 60)
        {
            count++;
        }
    }
    printf("%d", count);
    return 0;
}

这个结果和上面一样

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^