不知君 发表于 2022-4-21 16:41:31

作业,求助,急

#include<stdio.h>

int main()
{
        int i,k,s,q;
        int a;
        k=0;
        q=0;
        printf("请输入学生的成绩: ");
        for(i=1;i<1000&&i>=1;)
        {
                scanf("%d",&a);
                k=+a;
                s=k/i;
               

                if(a<60&&a>=0)
                {
                        q++;
                        i++;
                        printf("不及格的成绩为%d\n",a);
                }
                else if(a>=60)
                {
                        i++;
                }
               
                else
                {
                        break;
                }
               
       
        }
        printf("平均成绩为%d,不及格人数为%d\n",s,q);
        return 0;
}
不知道哪里输入错误了

大马强 发表于 2022-4-21 16:41:32

请输入学生的成绩:
10
50
60
-1
平均成绩为40.000000,不及格人数为2

#include<stdio.h>

int main()
{
      int i=0,j=0;//总人数,不及格人数,平均分,总分
      float avg = 0,sum=0;
      int a;
      int b; //存放不及格人数
      
      printf("请输入学生的成绩: \n");
      for(i=0;i<1000;i++)
      {
            scanf("%d",&a);
            if (a<0) // 这里就要判断退出条件了
                    break;
            if(a<60&&a>=0)
                    b = a, j++;
                    sum += a;      
      }
      avg = sum/i;
      printf("平均成绩为%f,不及格人数为%d\n",avg,j);
      return 0;
}

风车呼呼呼 发表于 2022-4-21 17:03:56

scanf("%d",&a);
没有这样给数组赋值的,除了字符串

计算平均数的语句放在循环里也是错的

题目没说限制输入上限,你这直接就小于1000也有问题
直接用while更简洁

题目意思应该是输入结束后统一输出平均成绩、不及格成绩和人数,但你这是一边输入的同时输出了不及格成绩

不知君 发表于 2022-4-21 17:15:44

大马强 发表于 2022-4-21 16:41


等等,少了不及格成绩的输出

不知君 发表于 2022-4-21 17:18:08

风车呼呼呼 发表于 2022-4-21 17:03
没有这样给数组赋值的,除了字符串

计算平均数的语句放在循环里也是错的


主要是a【】不能没有定义啊,所以要规定,不及格成绩可以直接打完一行成绩再回车,不然很难一个一个去判断啊

大马强 发表于 2022-4-21 18:51:57

不知君 发表于 2022-4-21 17:15
等等,少了不及格成绩的输出

也是哈,忘记了,你可以再加个循环输出
页: [1]
查看完整版本: 作业,求助,急