今天突然想起了

练习3-3 统计学生平均成绩与及格人数 (15分)
 

本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。

输入格式:

输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。

输出格式:

按照以下格式输出:

average = 成绩均值
count = 及格人数
 

其中平均值精确到小数点后一位。

输入样例:

5
77 54 92 73 60
 

输出样例:

average = 71.2
count = 4





这里采用了两种方法,第一种采用了数组+自定义函数,第二种单纯的循环

#include<stdio.h>
int main()
{
int fact(int a[ ],int y);
int n,i;//n指学生人数
int count=0,sum=0;
double average=0;
scanf("%d",&n);
if(n<=0)
{
printf("average = 0.0\n");
printf("count = 0\n");

}else
{
int class[n];//在这里代替循环使用数组

for(i=0;i<n;i++)
{
scanf("%d",&class[i]);
if(class[i]<=0)
{
printf("成绩不能为负数,请重新输入!");
scanf("%d",&class[i]);
}
}
sum=fact(class , n);

for(i=0;i<n;i++)
{
if(class[i]>=60)
{
count++;
}
}
average=sum*1.0/n;
printf("average = %.1lf\n",average);
printf("count = %d\n",count);
}

return 0;
}
int fact(int a[ ],int y)
{
int i,add=0;
for(i=0;i<y;i++)
{
add+=a[i];
}
return add;
}

 

 

 

第二种

#include<stdio.h>
int main()
{
int n,i,x;
int sum=0,count=0;
double average=0;
scanf("%d",&n);
if(n>0)
{
for(i=1;i<=n;i++)
{
scanf("%d",&x);
sum+=x;
if(x>=60)
{
count++;
}
}
average=sum*1.0/n;
printf("average = %.1lf\n",average);
printf("count = %d\n",count);

}else
{
printf("average = 0.0\n");
printf("count = 0\n");
}

return 0;
}

posted @ 2020-03-27 14:23  attendere  阅读(103)  评论(0编辑  收藏  举报