C语言:计算全班平均成绩,及统计各分数段人数的程序问题

C语言:计算全班平均成绩,及统计各分数段人数的程序问题,第1张

#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("全班平均成绩为:%f\n",avg);

  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名学生的成绩:等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9280249.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存