c语言 循环结构编程 输入若干个学生成绩, 若输入数据大于100或小于0则循环结束, 最后求成绩的平均值

如题所述

#include <stdio.h>

#define ARR_LEN 50 /*数组长度*/

int main(void) {
int count,i;
float score[ARR_LEN],sum,average;

puts("请分别输入每个学生的成绩:"); 
count = i = sum = 0;

while (1) {
printf ("第%d个学生:",i+1);
scanf ("%f",&score[i]);
if (score[i]<=100 && score[i]>=0) { /*成绩输入合法*/
sum+=score[i]; /*累加求总分*/
i++; /*计数器+1*/
}
else { /*成绩输入非法*/
count = i; /*记录成绩合法的学生人数*/
printf ("成绩输入完成!共%d名学生。\n",count);
break; /*结束循环*/
}
}

average = sum/count;
printf ("\n%d名学生的平均分为:%.2f\n",count,average);

getch (); /*屏幕暂留*/
    return 0;
}

运行结果

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-10
#include<stdio.h> void main(void){ int stu_numb=0,stu_result; float everage,sum=0.0;

printf( "请输入若干个学生的成绩:\n"); for(int i=0;i!=1;){
scanf("%d",&stu_result);
if((stu_result>=100)||(stu_result<=0))i=1;
sum+=stu_result;
++stu_numb; } printf("你总共输入%d个学生,他们的平均分为%f",stu_numb-1,(sum-stu_result)/(stu_numb-1));
//这里 stu_numb-1是表式当有输入100或0是不代表学生的成绩,仅用来使程序结束!}
第2个回答  2013-06-10
#include<stdio.h>
void main(){
int i;
float n,sum=0.0;
i=0;
printf("请输入所有学生的成绩:\n");
scanf("%f",&n);
while(n<=100&&n>=0){
sum+=n;
i++;
scanf("%f",&n);
}
printf("平均成绩为%.2f\n",(float)sum/i);

}
第3个回答  2013-06-10
#include <stdio.h>main()
{
int i = 0;
float t, ave = 0; scanf("%f", &t );
while( t > 0 && t <= 100)
{
ave += t;
i++;
scanf("%f", &t );
} ave /= i; printf( "ave = %.2f\n", ave );
}本回答被网友采纳
相似回答