用C语言编写一程序,统计N个学生的成绩信息。

#include<stdio.h>

#include<stdlib.h>

#define sm 50

struct Stu

{

int mc;

int number;

char name[10];

double math;

double English;

double computer;

};


void px(struct Stu [],int);

void census(struct Stu [],int);

void found(struct Stu [],int);

int main(int argc,char * argv[])

{

int n,i;

struct Stu stud[sm];

printf("请输入学生人数:
");

scanf("%d",&n);

printf("请输入每个学生的信息:
");

for(i=0;i<n;i++)

{

printf("第%d个学生:
",i+1);

stud[i].mc=i+1;

printf("输入学号:");

scanf("%d",&stud[i].number);

printf("输入姓名:");

scanf("%s",stud[i].name);

printf("输入数学成绩:");

scanf("%lf",&stud[i].math);

printf("输入英语成绩:");

scanf("%lf",&stud[i].English);

printf("输入计算机成绩:");

scanf("%lf",&stud[i].computer);

printf("
");

}

px(stud,n);

census(stud,n);

found(stud,n);

system("pause");

return 0;

}

void px(struct Stu a[],int n)

{

int i,j,temporary,mpm[sm],epm[sm],cpm[sm];

double zf[sm];

for(i=0;i<n;i++)

{

mpm[i]=i+1;

epm[i]=i+1;

cpm[i]=i+1;

}

for(i=0;i<n;i++)

{

zf[i]=a[i].math+a[i].English+a[i].computer;

}

for(i=0;i<n-1;i++)

{

for(j=i+1;j<n;j++)

{

if(zf[i]<zf[j])

{

temporary=a[j].mc;

a[j].mc=a[i].mc;

a[i].mc=temporary;

}

}

}

printf("
根据总分情况排名如下:
");

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

if(a[i].mc==j+1)

{

printf("第%d:
",i+1);

printf("名字:%s   学号:%d
",a[j].name,a[j].number);

printf("数学:%lf   英语:%lf   计算机:%lf
",a[j].math,a[j].English,a[j].computer);

break;

}

}

}

printf("根据数学情况排名如下:
");

for(i=0;i<n-1;i++)

{

for(j=i+1;j<n;j++)

{

if(a[i].math<a[j].math)

{

temporary=mpm[j];

mpm[j]=mpm[i];

mpm[i]=temporary;

}

}

}

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

if(mpm[i]==j+1)

{

printf("第%d:
",i+1);

printf("名字:%s   学号:%d
",a[j].name,a[j].number);

printf("数学:%lf   英语:%lf   计算机:%lf
",a[j].math,a[j].English,a[j].computer);

break;

}

}

}

printf("根据英语情况排名如下:
");

for(i=0;i<n-1;i++)

{

for(j=i+1;j<n;j++)

{

if(a[i].English<a[j].English)

{

temporary=epm[j];

epm[j]=epm[i];

epm[i]=temporary;

}

}

}

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

if(epm[i]==j+1)

{

printf("第%d:
",i+1);

printf("名字:%s   学号:%d
",a[j].name,a[j].number);

printf("数学:%lf   英语:%lf   计算机:%lf
",a[j].math,a[j].English,a[j].computer);

break;

}

}

}

printf("根据计算机情况排名如下:
");

for(i=0;i<n-1;i++)

{

for(j=i+1;j<n;j++)

{

if(a[i].computer<a[j].computer)

{

temporary=cpm[j];

cpm[j]=cpm[i];

cpm[i]=temporary;

}

}

}

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

if(cpm[i]==j+1)

{

printf("第%d:
",i+1);

printf("名字:%s   学号:%d
",a[j].name,a[j].number);

printf("数学:%lf   英语:%lf   计算机:%lf
",a[j].math,a[j].English,a[j].computer);

break;

}

}

}

}

void census(struct Stu a[],int n)

{

int i,count=0;

printf("
数学中不及格的人数有:
");

for(i=0;i<n;i++)

{

if(a[i].math<60)

{

count++;

printf("学号:%d   姓名:%s   数学:%lf
",a[i].number,a[i].name,a[i].math);

}

}

printf("共有%d人

",count);

count=0;

printf("英语中不及格的人数有:
");

for(i=0;i<n;i++)

{

if(a[i].English<60)

{

count++;

printf("学号:%d   姓名:%s   英语:%lf
",a[i].number,a[i].name,a[i].English);

}

}

printf("共有%d人

",count);

count=0;

printf("计算机中不及格的人数有:
");

for(i=0;i<n;i++)

{

if(a[i].computer<60)

{

count++;

printf("学号:%d   姓名:%s   计算机:%lf
",a[i].number,a[i].name,a[i].computer);

}

}

printf("共有%d人

",count);

count=0;

}

void found(struct Stu a[],int n)

{

int i,c;

printf("请输入你要查找的学号:
");

scanf("%d",&c);

for(i=0;i<n;i++)

{

if(c==a[i].number)

{

printf("姓名:%s   学号:%d
",a[i].name,a[i].number);

printf("数学:%lf   英语:%lf   计算机:%lf
",a[i].math,a[i].English,a[i].computer);

}

}

}




建议楼主参考 http://zhidao.baidu.com/question/314791834.html?oldq=1
这个问题我以前回答过N遍了,自己看看代码吧。有问题,可以qq联系。

我这有类似的,你要不?

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

这是一个利用随机数模拟的,你看看,下面有运行截图:
#include
#include
#include
//产生随机数
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("
");
}
printf("成绩的平均分为:%f
",outavg(a));
printf("高于平均分的人数为:%d
",tongji(a));
}
运行结果:

#include<stdio.h>
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<i>[j]);
sum=sum+a<i>[j];
}
a<i>[10]=sum/5.0;
}
printf("10名学生的成绩及平均分
");
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
printf("%.3f",a<i>[j]);
printf("
");
}
}

扩展资料:printf的用法
格式
printf函数的原型为:
#include<stdio.h>
int printf(const char*format,...);
在讲每一个函数的时候都会先把它的函数原型写出来,这个原型你们现在看不懂不要紧,等到学完C语言之后再来看这个原型就会发现它是很有参考意义的!它对深刻理解函数有着很大的价值。
printf的格式有四种:
1)printf("字符串
");
#include<stdio.h>
int main(void)
{
printf("Hello World!
");//
表示换行
return 0;
}
其中
表示换行的意思。它是一个转义字符,前面在讲字符常量的时候见过。其中n是“new line”的缩写,即“新的一行”。
此外需要注意的是,printf中的双引号和后面的分号必须是在英文输入法下。双引号内的字符串可以是英文,也可以是中文。
2)printf("输出控制符",输出参数);
纯文本复制
#include<stdio.h>
int main(void)
{
int i=10;
printf("%d
",i);/*%d是输出控制符,d表示十进制,后面的i是输出参数*/
return 0;
}


用C语言编写一程序,统计N个学生的成绩信息。
int n,i;struct Stu stud[sm];printf("请输入学生人数:\\n");scanf("%d",&n);printf("请输入每个学生的信息:\\n");for(i=0;i<n;i++){ printf("第%d个学生:\\n",i+1);stud[i].mc=i+1;printf("输入学号:");scanf("%d",&stud[i].number);printf("输入姓名:");scanf("%s",...

C语言统计N个学生,M门成绩求平均数求每门的平均分
int english;int chinese;int math;...n门课程 };void main(void){ int i,score,average;char NAME;struct stu *STU[m] \/\/m为已知的学生个数 for(i=0;i<M;i++){ STU = malloc(struct stu);printf("请输入第%d个学生的姓名",i+1);scanf("%s",&NAME);strcpy(STU[1]->name,...

c语言求n个学生的平均成绩
c语言求n个学生的平均成绩如下:在C语言编程中,求解n个学生的平均成绩是一项基本的任务。这不仅可以帮助我们更好地理解学生的表现,还可以为学校和教育机构提供决策依据。下面,我将详细介绍如何使用C语言来求解n个学生的平均成绩。首先,我们需要声明一些变量来存储学生的成绩。我们可以使用一个数组来存储...

用C语言编写一个程序,输入N个学生的学号和成绩,求平均成绩,并输出其 ...
include<stdio.h>#define N 5struct Stu{ int id; double score;};void sortScore(Stu s[N]){ int i; int min=0,max=0; for(i=1;i<N;i++){ if(s[i].score>s[max].score) max=i; if(s[i].score...

C语言定义一个一维数组,输入N个学生的考试成绩统计各分数段的人数(分数...
,&sc) == 1) {\/\/Ctrl + Z结束输入过程if(sc <= 100 && sc >= 90) ++grade[0];else if(sc >= 80 && sc <=89) ++grade[1];else if(sc <= 79 && sc >= 70) ++grade[2];else if(sc <=69 && sc >= 60) ++grade[3];else if(sc >= 0 && sc < 60) ++grade[...

求n个同学成绩平均值用c语言怎么写,用循环,for语句
include <stdio.h> int main(void){ int i;int sum=0;int num,tmp;printf("请输入:");scanf("%d",&num);for(i=0;i<num;i++){ printf("No.%d:",i+1);scanf("%d",&tmp);sum+=tmp;} printf("合计值:%d\\n",sum);printf("平均值:%.2f\\n",(double)sum\/num);return(0)...

编程C语言 输入n个学生成绩,计算他们的平均值并输出所有高于平均的学生...
思路:定义一个数组用于保存n个学生的成绩,输入他们的成绩的时候统计总分,并计算出他们的平均分,在来一个循环,让n个学生的成绩分别和平均分进行比较,满足大于平均分则输出 \/\/c语言实现 include<stdio.h> define MAX 100 int main(){ int n,i;double score[MAX],average,sum=0;printf("\\n...

C语音编程题(一个班级有N个学生,每个学生有学号、姓名,学生学习课程...
printf("请输入第%d名学生的英语分数:\\n",i+1);if(stu[j].totalScore>stu[j+1].totalScore){ studenttempStu;printf("名次学号姓名语文数学英语总分平均分\\n");for(i=0;i<n;i++)return0;} 简洁的语言 C语言包含的各种控制语句仅有9种,关键字也只有32个,程序的编写要求不严格且以小写...

如何用C语言编写用结构体完成N个学生M名课程的成绩排序?
这里是4名学生一门成绩的排序,不过中间还有生日,希望能给你带来点灵感吧!源代码如下:\\x0d\\x0a#include \\x0d\\x0astruct student_record \\x0d\\x0a{\\x0d\\x0a char name[8];\\x0d\\x0a struct birth\\x0d\\x0a {\\x0d\\x0a int year;\\x0d\\x0a int month;\\x0d\\x0a int day;\\x0d\\x...

编写C语言程序处理若干个学生的信息,每个学生的信息包括:学号、姓名...
\/\/定义3个最大值和和值,用来分别统计3门课程的最大值和总分 int max[3],sum[3];\/\/这里用来读入学生信息 printf("Pls enter your Info,as :2007 aaa 97 98 99\\n");for(i=0;i<N;i++){ scanf("%ld %s %d %d %d",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i]....