本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于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;
}
原文:https://www.cnblogs.com/wven/p/12581198.html