#include<stdioh>
int main(void)
{ float sum=00,avg=00;
int num,count,c9,c89,c78,c67,c6;
num=count=c9=c89=c78=c67=c6=0;
scanf("%d",&num);
while(num>=0 && num<101) //这里不能有分号,否则就进入死循环了。另外,还应当允许为0
{ sum=sum+num;
count=count+1;
if(num>=90) c9=c9+1;
else
{ if(num>=80 && num<90) c89=c89+1;
else
{ if(num>=70 && num<80) c78=c78+1;
else
{ if(num>=60 && num<70) c67=c67+1;
else c6=c6+1;
}
}
}
scanf("%d",&num);
}
avg=sum/count;
printf("90分以上的(包括90分)的人数是:%d\n",c9);
printf("80~90分(包括80分)的人数是:%d\n",c89);
printf("70~80分(包括70分)的人数是:%d\n",c78);
printf("60~70分(包括60分)的人数是:%d\n",c67);
printf("60分以下的人数是:%d\n",c6);
return 0;
}
编程时输入输出非常重要。因为计算机不懂得人类语言,必须要约定输入输出格式:
比如,
(1)举例一:
输入文件“c:\各省份报道统计txt”
文件内容:
3 (省份数量)
江苏 4 7
浙江 3 3
安徽 8 6
(文件结束。其中,第一行表示省份数量,下面若干行中每行有3个数据,第一个数据为省份名,第二个数据为报道人数,第三个数据为报道文章数)
(2)举例二:
输入文件“c:\各省份报道统计txt”
文件内容:
7 (报道数量)
南京报道 江苏 王
杭州报道 浙江 张
……
合肥报道 安徽 李
(文件结束。其中,第一行表示报道篇数。之后若干行中每行有3个数据,第一个为报道名称,第二个为报道省份,第三个为报道人姓名)
以上两个例子虽然都是统计,但是输入数据格式不同,所以统计方法完全不同。这些细节无法忽略。同理,输出的格式也是如此。
#include<stdioh>
int main()
{
int i,j,n;
double sum=0,average,score[500];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%lf",&score[i]);
sum+=score[i];
}
average=sum/n;
j=0;
for(i=0;i<n;i++)
{
if(score[i]<average)
j++;
}
printf("低于平均分的学生人数为%d人,平均分为%lf
\n",j,average);
return 0;
}
#include<stdioh>
#define N 5 //学生人数
int main()
{
float num[N]= {0},sum=00,avg=00;
float people=N;
int i=0,counter=0;
while(i<N)
{
scanf("%f",&num[i]);
sum+=num[i];
i++;
}
avg=sum/people;
for(i=0; i<N; i++)
{
if(num[i]>avg)
counter++;
}
printf("平均分=%g",avg);
printf("高于平均分的人数:%d",counter);
return 0;
}
100岁以上的判断出错,原因在于,你把100岁以上的人,仍然按10岁一级统计了(分别统计了110、120以下),你的fun函数修改后(如果其他的地方没有错的话):
void fun(int a, int b){
int i,j,n;
for(j=0;j<M;j++)
b[j]=0; //计数器初始化
for(i=0;i<N;i++) //循环判断所有的年龄
{
n=a[i]/10;
if(n<10)
b[a[i]/10]++;
else b[10]++;
}
#include<stdioh>
int main()
{
int i,count=0,a[10];
printf("请输入10个同学的成绩:");
for(i=0;i<10;i++)//循环输入成绩
{
scanf("%d",&a[i]);
if(a[i]>80) count++;//判断成绩是否大于80,是的话个数+1
}
printf("%d",count);//输出大于80分得个数
return 0;
}
#include <stdioh>
int main()
{
int n,m=0,i;
int marks[10000],cnt[10000]={0};
int Gmark;
scanf("%d",&n);
while(n)
{
for(i=0;i<n;i++)
scanf("%d",&marks[i]);
scanf("%d",&Gmark);
for(i=0;i<n;i++)
if(marks[i]==Gmark)
cnt[m]++;
scanf("%d",&n);
m++;
}
for(i=0;i<m;i++)
printf("%d\n",cnt[i]);
return 0;
}
以上就是关于C语言:计算全班平均成绩,及统计各分数段人数的程序问题全部的内容,包括:C语言:计算全班平均成绩,及统计各分数段人数的程序问题、c语言编程:统计各省份报道情况并按实际人数从多到少排列、C语言: 编写程序:从n个学生的成绩中统计出低于平均分的学生人数。(例如,若输入8名学生的成绩:等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)