C语言题目:从键盘输入n个学生(n<20)的成绩,计算平均成绩,并输出低于平均分的学生成绩

如题所述

#include<stdio.h>
void main()
{
   int n,i=0;
   float sum=0,average;
   printf("输入学生的数目:");
   while(n<0||n>20)
      scanf("%d",&n);
   float str[30];
   while(i<n)
   {
    scanf("%f",&str[i]);
    i++;
    
   }
   for(int i=0;i<n;i++)
    sum+=str[i];
   average=sum/n;
   printf("平均成绩为:%.2f\n",average);
   printf("低于平均的成绩:");
   i=0;
   while(i<n)
   {   
    if(str[i]<average)
     printf("%.2f  ",str[i]);
    i++;
   }
}

追问

如果不输入n的值,能在程序中求出n的值吗?

追答

当然不能

追问

只能自己输吗?

追答

我看错题了,你可以这样解决,当输入的数为负数的时候停止

#include “stdio.h”
#define MAX 100//定义最大成绩不能超过100
void main()
{
int mark[MAX],sum=0,mark=0,j=0,aver=0;
printf("请输入学生成绩,输入负数结束成绩添加");
for(int i=0;i<MAX;i++)
{
scanf("%d",&mark);
if(mark>=0)
{
sum=sum+mark;
j++;
}
else
break;
}
aver=sum/j;
printf("平均成绩为%d\n",aver);
for(int i=0;i<j,i++)
{
if(mark[i]<aver)
printf("低于平均的成绩%d\n",mark[i]);
}
}

追问

厉害厉害

温馨提示:答案为网友推荐,仅供参考