编写一个c语言程序;功能是计算n个学生的成绩中,高于平均成绩的人数,并作为函数值,

用主函数来调用它,统计50个学生的成绩中,高于平均成绩的有多少人

这是一个利用随机数模拟的,你看看,下面有运行截图:

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

//产生随机数

int random(int a, int b)

{

 return rand() % (b-a)+a;

}

//求平均分函数

float outavg(int *c)

{

    float avg;

 float sum=0;

 for(int j=0;j<50;j++)

 {

  sum=sum+c[j];

 }

 avg=sum/50;

 return avg;

}

//统计高于平均分的人数

int tongji(int *b)

{

    int m;

    int k=0;//记录高于平均分的人数个数

 int num=0;

 m=outavg(b);

    while(k<50)

 { 

     if(b[k]>m)

   num++;

     k++;

 }

 return num;

}

void main()

{

    int a[50];//定义数组存放成绩

 srand( time(NULL) );

    int c,b;

 printf( "请输入要模拟的50名同学成绩的最低分和最高分: ");

 scanf("%d %d",&c,&b);

 for(int i =0; i <50; i++ )

 {

  a[i]=random(c,b);//产生随机分数

  printf("   %d",a[i]);

  if(i%10==9)      //将50名同学的分数按照10x5的格式输出

   printf("\n");

 }

   printf("成绩的平均分为:%f\n",outavg(a));

   printf("高于平均分的人数为:%d\n",tongji(a));

}

运行结果:

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-19
下面的程序运行过了,可以运行。其中,学生的初成绩你可以用别的方法。
#include<stdio.h>
#include<stdlib.h>
int statistics(float stu[],int n); //统计函数
int main()
{
float a[50];
int count;
for(int i=0;i<50;i++) //初始化分数(百分制)
{
a[i]=(float)(50+rand()%51);
}
for(i=0;i<50;i++) //输出分数,每行10个
{
printf("%.2f\t",a[i]);
if((i+1)%10==0)
printf("\n");
}
printf("\n");
count=statistics(a,50); //调用函数
printf("高于平均成绩的人数为:%d\n",count);
return 0;

}

int statistics(float stu[],int n) //统计函数
{
int cou; //cou统计人数
float av; //av平均分
av=0;
cou=0;
for(int i=0;i<n;i++)
{
av+=stu[i];
}
av=av/n;
printf("平均成绩为:%2.f\n",av); //输出平均成绩(在你的程序中可以去掉这一行)
for(i=0;i<50;i++)
{
if(stu[i]>av)
cou++;
}
return cou;
}
第2个回答  推荐于2018-02-27
#include<stdio.h>
int fun(float *score,int n);
void main(){
float score[50];
int i;
for(i=0;i<50;i++)
scanf("%f",&score[i]);
printf("%d",fun(score,50));
}
int fun(float *score,int n){
float sum=0,mean=0;
int num=0;
int i;
for(i=0;i<n;i++)
sum=sum+score[i];
mean=sum/n;
for(i=0;i<n;i++)
if(score[i]>mean) num++;
return num;
}本回答被提问者和网友采纳
第3个回答  2010-05-20
#include "stdio.h"

int overAvgStu(float stu[], int n)
{
float avg = 0.0f;
float sum = 0.0f;
int i = 0;
int count = 0;

for (i = 0; i < n; i++)
{
sum += stu[i];
}
avg = sum / n;
for (i = 0; i < n; i++)
{
if (stu[i] > avg)
{
count++;
}
}
return count;
}

void main()
{
float stu[50] =
{
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
};

printf("%d", overAvgStu(stu, 50));
}

C语言编程:编写函数分别完成求和、求平均值及求高于平均值的数据及个...
int sum(int a[],int n){int i,sum;for(i=0,sum=0;i<n;i++)sum+=a[i];return sum;}double average(int a[],int n){int i,sum;for(i=0,sum=0;i<n;i++)sum+=a[i];return 1.0*sum\/n;}int over_avg(int a[],int n, double avg){int i,count;for(i=0,count=0...

C语言:输入一批学生的n门课成绩,可以输出每个学生的平均分和每门课程...
float stu_aver; \/\/一个(某个)学生的平均成绩 };void input(struct student *pstu) \/\/自定义输入函数input {int i;printf("请输入相关学生的信息:\\n");printf("学号 姓名 语文 数学 外语\\n");for(i=0;i<NUM1;i++,pstu++){ scanf("%ld%s%f%f%f",&pstu->num,pstu->nam...

编程如何用C语言编写一个学生成绩管理系统程序
\/*函数creat,功能:创建链表,此函数带回一个指向链表头的指针*\/{score*head;score *p1,*p2,*p3,*max;int i,j;float fen; char t[10];n=0; p1=p2=p3=(score *)malloc(LEN);head=p3; \/*申请一个新单元*\/ printf("请输入学生资料,输0退出!\\n");repeat1: printf("请输入学生学号(学号应大于0...

...成绩管理程序。要求如下: 能输入并显示n个学生的m门考试科目的成绩...
1、采用逐个赋值法进行编程。首先打开编辑器创建工程并新建内容,输入标准输入输出头文件及main()主函数。2、定义总分与平均分变量。然后定义是个数值变量,并分别对其进行赋值。编辑计算总分与平均分的程序语句。输出计算求得的总分与平均分。3、首先打开编辑器创建工程并新建内容,然后在主函数中进行编辑。

...功能是:计算n门课程的平均分,计算结果作为函数值返回
float fun(float a[],int n){ int i;float s=0,t;for(i=0;i<n;n++)s=s+a[i];t=s\/n;return(t);}

C语言程序,请你编写一个程序计算每个学生的平均成绩
void main(){ float a[10][10];\/\/用来存放10名学生的5门成绩,最后一位用于存放平均成绩 int i,j;float sum=0.0;for(i=0;i<10;i++){ printf("请输入第%d个学生的5门成绩",i+1);for(j=0;j<5;j++){ scanf("%f",&a[j]);sum=sum+a[j];} a[10]=sum\/5.0;} printf("...

用C语言编写函数,在主函数中输入N个人的某门课程的成绩,分别用函数求...
{ float deg[N];printf("输入该门课程的成绩: \\n");for(int i=0;i<N;i++)scanf("%f",°[i]);printf("该门课程的平均值为: %0.2f\\n",aver(deg));printf("该门课程的最高分为: %0.2f\\n",Max(deg));printf("该门课程的最低分为: %0.2f\\n",Min(deg));return 0;} ...

C语言的问题,建一个函数统计一队数组超过平均值的个数,并求一组50个...
include "stdafx.h"include<conio.h> include<stdio.h> include<string.h> int average(int a[],int k){ int i,sum,all=0,n=0;for(i=0;i<k;i++)sum=sum+a[i];for(i=0;i<k;i++){ if(a[i]*k>sum)n++;} return n;} void main(void){ int a[1000],k,n,i;printf(...

用C语言编写一个学生成绩管理系统。
用C语言编写一个学生成绩管理系统。 20 学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。主要功能:1、能按学期、按班级完成对学生成绩的录入、修改2、能按班级统计学生的成绩,求学... 学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。主要...

从键盘上输入若干个学生的成绩,计算平均成绩,并输出低于平均分的...
void main(){ int i,n,s=0;float ave;int a[30];printf("请输入学生个数:");scanf("%d",&n);printf("请输入学生成绩:");for(i=0;i<n;i++){ scanf("%d",&a[i]);s+=a[i];} ave=(float)s\/n;printf("平均成绩为:%.2f\\n",ave);printf("低于平均分的有:\\n");for(i...

相似回答