鱼C论坛

 找回密码
 立即注册
查看: 4899|回复: 5

[已解决]作业,求助,急

[复制链接]
发表于 2022-4-21 16:41:31 | 显示全部楼层 |阅读模式
10鱼币
#include<stdio.h>

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

                if(a[i]<60&&a[i]>=0)
                {
                        q++;
                        i++;
                        printf("不及格的成绩为%d\n",a[i]);
                }
                else if(a[i]>=60)
                {
                        i++;
                }
               
                else
                {
                        break;
                }
               
       
        }
        printf("平均成绩为%d,不及格人数为%d\n",s,q);
        return 0;
}
不知道哪里输入错误了
微信图片_20220421164004.jpg
最佳答案
2022-4-21 16:41:32
请输入学生的成绩:
10
50
60
-1
平均成绩为40.000000,不及格人数为2

  1. #include<stdio.h>

  2. int main()
  3. {
  4.         int i=0,j=0;  //总人数,不及格人数,平均分,总分
  5.         float avg = 0,sum=0;
  6.         int a[1000];
  7.         int b[1000]; //存放不及格人数
  8.         
  9.         printf("请输入学生的成绩: \n");
  10.         for(i=0;i<1000;i++)
  11.         {
  12.             scanf("%d",&a[i]);
  13.             if (a[i]<0) // 这里就要判断退出条件了
  14.                     break;
  15.             if(a[i]<60&&a[i]>=0)
  16.                     b[j] = a[i], j++;
  17.                     sum += a[i];      
  18.         }
  19.         avg = sum/i;
  20.         printf("平均成绩为%f,不及格人数为%d\n",avg,j);
  21.         return 0;
  22. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-21 16:41:32 | 显示全部楼层    本楼为最佳答案   
请输入学生的成绩:
10
50
60
-1
平均成绩为40.000000,不及格人数为2

  1. #include<stdio.h>

  2. int main()
  3. {
  4.         int i=0,j=0;  //总人数,不及格人数,平均分,总分
  5.         float avg = 0,sum=0;
  6.         int a[1000];
  7.         int b[1000]; //存放不及格人数
  8.         
  9.         printf("请输入学生的成绩: \n");
  10.         for(i=0;i<1000;i++)
  11.         {
  12.             scanf("%d",&a[i]);
  13.             if (a[i]<0) // 这里就要判断退出条件了
  14.                     break;
  15.             if(a[i]<60&&a[i]>=0)
  16.                     b[j] = a[i], j++;
  17.                     sum += a[i];      
  18.         }
  19.         avg = sum/i;
  20.         printf("平均成绩为%f,不及格人数为%d\n",avg,j);
  21.         return 0;
  22. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-21 17:03:56 | 显示全部楼层
  1. scanf("%d",&a);
复制代码

没有这样给数组赋值的,除了字符串

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

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

题目意思应该是输入结束后统一输出平均成绩、不及格成绩和人数,但你这是一边输入的同时输出了不及格成绩
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-21 17:15:44 | 显示全部楼层

等等,少了不及格成绩的输出
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-21 17:18:08 | 显示全部楼层
风车呼呼呼 发表于 2022-4-21 17:03
没有这样给数组赋值的,除了字符串

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

主要是a【】不能没有定义啊,所以要规定,不及格成绩可以直接打完一行成绩再回车,不然很难一个一个去判断啊
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-21 18:51:57 | 显示全部楼层
不知君 发表于 2022-4-21 17:15
等等,少了不及格成绩的输出

也是哈,忘记了,你可以再加个循环输出
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-16 09:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表