今天突然想起了

练习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 ");
printf("count = 0 ");

}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 ",average);
printf("count = %d ",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 ",average);
printf("count = %d ",count);

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

return 0;
}

只供自己学习参考,方便自己知道做过哪些题目。偶尔会附上别人写的代码(整张截图)供自己学习和对比,若题主不同意,可删
原文地址:https://www.cnblogs.com/wven/p/12581198.html