C语言计算并输出学生成绩

合集下载

C语言课程设计--学生成绩管理系统

C语言课程设计--学生成绩管理系统

*题目七:学生成绩管理系统设计学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。

主要功能:(1)能按学期、按班级完成对学生成绩的录入、修改(2)能按班级统计学生的成绩,求学生的总分及平均分(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出学生的成绩单要求:使用二进制文件方式存储数据,系统以菜单方式工作源代码:#include<stdio.h>#include<ctype.h>#include<stdlib.h>#include<string.h>struct Student{int cls;char nam[10];char num[10];int chinese;int english;int computer;int math;}stud1[100],stud2[100];{char a;while(a>'7'||a<'0'){system("cls");printf(" 欢迎使用学生成绩管理系统\n");printf(" 制作人:章建\n");printf("********************** 学生成绩管理系统************************\n");printf(" 1.输入学生成绩\n");printf(" 2.输出学生成绩\n");printf(" 3.查找并显示学生成绩\n");printf(" 4.按姓名查找,修改学生资料\n");printf(" 5.显示所有学生名单\n");printf(" 6.查找并删除学生信息\n");printf(" 7.从文件读取数据\n");printf(" 0.储存学生资料并退出系统\n");printf("********************************************************************* *\n");printf("请选择(0-7)\n");a=getchar();}return(a-'0');}/******************************************************************************int Input(Student stud[],int n) //输入数据(第一学期)。

c语言输入10个同学的成绩总分和平均值

c语言输入10个同学的成绩总分和平均值

c语言输入10个同学的成绩总分和平均值C语言输入10个同学的成绩总分和平均值一、前言在学习编程语言的过程中,C语言是一个非常基础且重要的语言。

在C 语言中,输入输出是非常基础的内容之一,学会如何输入和处理数据是我们学习编程的第一步。

本文将以输入10个同学的成绩总分和平均值为题,深入探讨C语言中的输入输出操作,并共享我对这个主题的个人理解。

二、基本概念在C语言中,我们可以通过scanf()函数来实现数据的输入。

scanf()函数是一个输入函数,可以将用户输入的数据存储到指定的变量中。

在本题中,我们需要输入10个同学的成绩,分别存储到不同的变量中。

三、具体操作在C语言中,我们可以使用循环来反复输入数据,以实现输入10个同学的成绩。

我们需要定义一个数组来存储这10个同学的成绩,然后通过循环依次输入每个同学的成绩。

我们可以使用循环再次遍历数组,求得这10个同学的成绩总和。

通过平均值公式,我们可以求得这10个同学的成绩平均值。

四、代码示例```c#include <stdio.h>int main() {int scores[10];int sum = 0;double average = 0.0;// 输入10个同学的成绩for (int i = 0; i < 10; i++) {printf("请输入第%d个同学的成绩:", i + 1);scanf("%d", &scores[i]);}// 计算成绩总和for (int i = 0; i < 10; i++) {sum += scores[i];}// 计算平均值average = (double) sum / 10;// 输出成绩总和和平均值printf("这10个同学的成绩总和为:%d\n", sum);printf("这10个同学的成绩平均值为:%.2f\n", average);return 0;}```五、总结回顾通过以上的代码示例,我们了解了如何在C语言中输入10个同学的成绩总分和平均值。

编程从键盘输入10个学生的成绩,输出平均成绩和低于平均分的学生成绩。

编程从键盘输入10个学生的成绩,输出平均成绩和低于平均分的学生成绩。

从编程键盘输入10个学生的成绩,输出平均分和低于平均分的。

从编程键盘输入10个学生的成绩,输出平均分和低于平均分的。

1#include <stdio.h>int main(){double score[10];inti;for(i=0;i<10;i++)scanf("%lf",&score[i]);for(i=0;i<10 ;i++)if(score[i] < 60)printf("%g ",score[i]);return 0;}从编程键盘输入10个学生的成绩,输出平均分和低于平均分的。

2#include<stdio.h>void main(){int nscore[10]={0};inti,j,ntemp;for(i=0;i<10;i++){scanf("%d",&nscore[i]);}/*冒泡法排序*/for(i=0;i<10;i++){for(j=0;j<10-i-1;j++){if(nscore[j]<nscore[j+1]) /*两两比较,小的放后放,一次循环后最小数在最后*/{ntemp=nscore[j];nscore[j]=nscore[j+1];nscore[j+1]=n temp;}}}printf("由大到小排列为:\n")for(i=0;i<10;i++){printf("%d",nscore[i]);}printf("\n");}从编程键盘输入10个学生的成绩,输出平均分和低于平均分的。

3这个可以使用冒泡法做!从编程键盘输入10个学生的成绩,输出平均分和低于平均分的。

4#include <stdio.h>#define max 10struct student {char no[10];char name[10];float score[3];}stu[max];float ave_course[3] = {0};float ave_student[max] = {0};int max_ave_i = 0; 存储平均分最高的学生索引intmax_course_i[3] = {0}; 存储单科分数,最高的学生索引录入学生成绩void input(int n) {int i;for(i=0; i<n; i++) {scanf("%s %s",stu[i].no,stu[i].name);scanf("%f %f %f",&stu[i].score[0], &stu[i].score[1],&stu[i].score[2]);}}计算平均成绩void average(intn){int i,j;float max_ave = 0.0f;float max_course[3] = {0};计算每门课的平均成绩for(i=0; i<n; i++) {for(j=0; j<3; j++) {ave_course[j] +=stu[i].score[j];if(max_course[j]<stu[i].score[j]){max_ course[j]<stu[i].score[j];max_course_i[j] =i;}}}for(j=0; j<3; j++) {ave_course[j] /= n;}计算每个学生的平均成绩for(i=0; i<n; i++) {for(j=0; j<3; j++) {ave_student[i] += stu[i].score[j];}ave_student[i] /= 3;if(max_ave < ave_student[i]) {max_ave =ave_student[i];max_ave_i = i;}}}void main () {inti,j;printf("请输入学生的学号姓名语文数学英语");input(max);average(max);printf("\n课程的平均成绩是: %6.2f %6.2f %6.2f\n",ave_course[0],ave_course[1],a ve_course[2]);printf("\n学生的平均成绩是:\n");for(i=0; i<max; i++) {printf(" %s %s %6.2f\n", stu[i].no, stu[i].name, ave_student[i]);}printf("平均分,最高的学生:\n");printf(" 学号=%s, 姓名=%s, 平均分=%6.2f:\n", stu[max_ave_i].no, stu[max_ave_i].name,ave_student[max_ave_i]);printf("语文,最高分的学生:\n");i=max_course_i[0];printf(" 学号=%s, 姓名=%s, 成绩=%6.2f:\n", stu[i].no, stu[i].name,stu[i].score[0]);printf("数学,最高分的学生:\n");i=max_course_i[1];printf(" 学号=%s, 姓名=%s, 成绩=%6.2f:\n", stu[i].no, stu[i].name,stu[i].score[1]);printf("英语,最高分的学生:\n");i=max_course_i[2];printf(" 学号=%s, 姓名=%s, 成绩=%6.2f:\n", stu[i].no, stu[i].name,stu[i].score[2]);getchar();getchar();}从编程键盘输入10个学生的成绩,输出平均分和低于平均分的。

学生成绩查询c语言程序

学生成绩查询c语言程序

填写说明:1、同一名教师在不同教学班教授的同一门课程只须填写一份教学日历;由不同教师教授的同一门课程每人填写一份教学日历。

2、“作业、实验”栏中的作业,是指教师计划布置的,应该批改的作业。

3、法定假日不安排教学内容,其课次顺延安排.系统开发语言作业现有一个班级,共10人,本学期共学习三门课程,设计一个学生成绩管理系统,要求如下:1、完成三门课程成绩输入;或单门课程录入、或同时录入三门课.2、完成成绩排序:按单科成绩排序、按平均分排序;3、完成成绩统计:按单科分段统计人数、按平均分分段统计(60分以下,60—79分,80以上);4、用结构体完成学生姓名和成绩的输入:5、完成成绩查询:单科查询、平均分查询、按姓名查询、分段查询等;6、完成奖学金统计:三门课均高于90分,一等奖学金;三门课均高于80分,二等奖学金,统计获奖学金人数7、完成成绩输出:按单科输出、输出所有成绩、按平均分由高到低输出,输出奖学金名单等;.作业要求第1、2、3周、完成成绩录入、排序和统计第4、5、6周、完成菜单和函数编制第2、8、9周、完成成绩查询和统计第10、11周、完成查询输出第12、13周、讲程序进行函数化、模块化第14、15周、应用指针、指针函数以及函数指针等第16周,完善程序、验收。

最后打印出完整代码清单代码如下:#include<stdio.h〉struct student{float math;float Chinese;float English;float average;char name[5];};void inputgread(struct student stu)//输入成绩{int a=0;scanf(”%s”,);printf("按顺序输入数学成绩,语文成绩,英语成绩");scanf("%f%f%f”,&stu。

math,&stu.Chinese,&stu。

c 语言 计算平均成绩

c 语言 计算平均成绩

5-48 计算平均成绩(15分)给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和成绩([0,100]区间内的整数),要求计算他们的平均成绩,并顺序输出平均线以下的学生名单。

输入格式:输入在一行中给出正整数N(≤\le≤10)。

随后N行,每行给出一位学生的信息,格式为“学号姓名成绩”,中间以空格分隔。

输出格式:首先在一行中输出平均成绩,保留2位小数。

然后按照输入顺序,每行输出一位平均线以下的学生的姓名和学号,间隔一个空格。

输入样例:500001 zhang 7000002 wang 8000003 qian 9010001 li 10021987 chen 60输出样例:80.00zhang 00001chen 21987#include <stdio.h> struct score{char num[10];char name[10];double s;};int main(){struct score s[1000];int i, n;double average = 0;scanf("%d", &n);for (i = 0; i < n; i++){scanf("%s %s %lf", &s[i].num, &s[i].name, &s[i].s);}for (i = 0; i < n; i++){average = average + s[i].s;}average = average / n;printf("%.2f\n", average);for (i = 0; i < n; i++){if (s[i].s < average){printf("%s %s\n", s[i].name, s[i].num);}}return 0;}。

学生成绩管理系统C语言源程序

学生成绩管理系统C语言源程序
{
for(p=head->next;p!=NULL&&strcmp(p->name,tem);p=p->next);
if (!p)
{
printf("\n\n找不到你要查询的姓名,请重新输入,输入0表\
示结束:");
scanf("%s",tem);
}
else if (!strcmp(p->name,tem))
n=0;
head=(Student *)malloc(LEN);
p2=head;
printf("\n请输入第%d名学生的学号,学号为0表示结束输入:",n+1);
scanf("%d",&flag);
while(getchar()!='\n');
for(;flag;)
{
n++;
p1=(Student *)malloc(LEN);
char xueqi[20];
int score[4];
int sum;
struct student *next;
}Student;
int n;
Student *cin(void);
Student *sort_1(Student *head,int);
void sort_2(Student *head);
max_3=min_3=p->score[2];max_2=min_2=p->score[3];
max_sum=min_sum=p->sum;
for(;p;p=p->next)
{
if (max_1<p->score[0]) max_1=p->score[0];

C语言程序:按成绩从高到低的顺序输出学生信息

C语言程序:按成绩从高到低的顺序输出学生信息

按成绩从高到低顺序输出学生信息程序描述:输入并保存10个学生的信息,计算并输出平均分,再按照从低分到高分的顺序输出他们的信息;样例输入:1 啊102 吧93 才84 的75 额 66 飞 57 个 48 好 39 就 210 看 1样例输出:出题人:我们一起的痕迹程序代码int score;};struct student stud[10];int main(void){int i,j,index,sum=0;struct student temp;printf("\nInput the student's number,name and score:\n");for(i=0;i<10;i++){printf("No %d:",i+1);scanf("%d%s%d",&stud[i].num,stud[i].name,&stud[i].score);sum=sum+stud[i].score;}for(i=0;i<9;i++){index=i;for(j=i+1;j<10;j++)if(stud[j].score<stud[index].score)index=i;temp=stud[index];stud[index]=stud[i];stud[i]=temp;}printf("The average:%d\n",sum/10);printf("The student score:\n");for(i=9;i>=0;i--)printf("%d %s %d\n",stud[i].num,stud[i].name,stud[i].score); system("pause"); (提交代码这行需删去)return 0;}我们一起的痕迹。

c语言学生成绩管理系统代码

c语言学生成绩管理系统代码

include<stdio.h>include<string.h>include<stdlib.h>define MAXN 100 //一个班最多的人数define MAXM 2 //成绩的课程门数int R;void input; //1.学生成绩新建void sort; //2.学生成绩插入void load; //3.学生成绩修改void print; //4.学生成绩删除void total; //5.学生成绩统计void search; //6.学生成绩查询void save; //7.学生成绩保存void end; //8.结束struct student{char name20; //保存全班姓名char num12; //保存全班学号float scoreMAXM; //保存全班所有课程成绩float sum; //保存全班每个人的总成绩float avg; //保存每个人的平均成绩};struct student sMAXN;struct http{char subject20; //保存全班所有课程};struct http cMAXM;void main //欢迎首界面{int select;l;system"color fC";printf"\n";printf"\n";printf"\n";printf"\n";printf" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n";printf" \n";printf" \n";printf" 欢迎进入终极一班学生管理系统\n";printf" \n";printf" ︻┳═一 cf ... \n";printf" ┈━═☆甘总管的多塔生活∝╬══→ \n";printf" \n";printf" 凸^-^凸凸^-^凸凸^-^凸凸^-^凸凸^-^凸凸^-^凸凸^-^凸 \n";printf" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n";printf" ╭v╮ ╔══╗╔╗ ╔╗╔╗╭'''╮\n";printf" ^o^╚╗╔╝║║╔═╦╦╦═╗║╚╝╠═╦╦╗~ : ~\n";printf" ~ : ~╔╝╚╗║╚╣║║║║╠╣╚╗╔╣║║║║~v ~\n";printf" ╚══╝╚═╩═╩═╩═╝╚╝╚═╩═╝ \n";printf"\n";printf"\n";printf" 请按任意键进入下一界面\n";printf"------------------------------------------------------------------\n";system"pause";system"color f2";system"color f1";system"color f3";system"color fE";system"color fB";system"color f5";system"color f9";system"color f6";system"color f1";system"color f3";system"color fE";system"color fB";system"color f5";system"color f9";system"color f6";system"color f1";system"color f3";system"color f5";system"color f9";system"color f6";system"color fD";system"pause";system"color fC";system"cls"; //上面是第一个界面while1{system"cls";printf" 欢迎进入终极一班学生管理系统\n";printf" \n";printf" ∝╬══→ 1.学生成绩新建囧rz 欢\n";printf" ::======>> 2.学生成绩插入迎\n";printf" ┈━═☆ 3.学生成绩修改来\n";printf" ∝╬══→ 4.学生成绩删除到\n";printf" ∝╬══→ 5.学生成绩统计英\n";printf" ∝╬══→ 6.学生成绩查询雄\n";printf" ▄︻┻═┳ 7.学生成绩保存联\n";printf" ∝╬══→ 8.退出/撒拉嘿盟\n";printf" ⊙_⊙⊙_⊙⊙_⊙⊙_⊙⊙_⊙⊙_⊙ \n"; printf" \n";printf"\n"; printf"\n 请输入您的选择编号;回车键继续:\n";printf" ---------------------------------------------------------------------------\n";scanf"%d";&select;do{ifselect<1||select>8{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&select;}l=select;}whilel<1||l>8;switchselect{case 1:input;break; //1.学生成绩新建case 2:sort; break; //2.学生成绩插入case 3:load; break; //3.学生成绩修改case 4:print; break; //4.学生成绩删除case 5:total;break; //5.学生成绩统计case 6:search;break; //6.学生成绩查询case 7:save;break; //7.学生成绩保存case 8: end;break; //8.结束default:printf" 请按相应数学选择系统功能:";}}}void input //1学生成绩输入成绩模块{int i;j;b;float a=0;printf" 请输入该班同学的人数:\n";printf" 班同学的人数在1~%d之间:\n";MAXN;scanf"%d";&R;do{ifR<1||R>100{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&R;}b=R;}whileb<1||b>100;fori=0;i<MAXM;i++{printf" 请输入该班同学的第%d门课程名称为:\n";i+1;scanf"%s"; &ci.subject;}fori=0;i<R;i++{printf" 请输入第%d个同学的姓名:\n";i+1;scanf"%s";&;printf" 请输入第%d个同学的学号:\n";i+1;scanf"%s";&si.num;printf" 请依次输入%d门学科的成绩:\n";MAXM;forj=0;j<MAXM;j++{printf" 请输入课程%s的成绩为:\n";cj.subject;scanf"%f";&si.scorej;a=a+si.scorej;}si.sum=a;si.avg=si.sum/MAXM;a=0;}}void sort //2学生成绩插入成绩模块{int i;j;k;b;float a=0;printf" 请输入要插入的学生的位置1~%d号:\n";R;printf" 第几个学生的位置之后:\n";scanf"%d";&k;do{ifk<1||k>R{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&k;}b=k;}whileb<1||b>R;R=R+1;fori=R;i>k;i--{;;strcpysi.num;si-1.num;si.sum=si-1.sum;si.avg=si-1.avg;forj=0;j<MAXM;j++{si.scorej=si-1.scorej;}}printf" 请输入第%d个同学的姓名:\n";k+1;scanf"%s";&;printf" 请输入第%d个同学的学号:\n";k+1;scanf"%s";&sk.num;printf" 请依次输入%d门学科的成绩:\n";MAXM;forj=0;j<MAXM;j++printf" 请输入课程%s的成绩为:\n";&cj.subject;scanf"%f"; &sk.scorej;a=a+sk.scorej;}sk.sum=a;sk.avg=sk.sum/MAXM;}void load //3学生成绩修改{float a=0;hMAXM;int i;j;b;printf" 请输入修改学生的位置1~%d 号: \n";R;scanf"%d";&i;do{ifi<1||i>R{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&i;}b=i;}whileb<1||b>R;printf" 请输入%d号的新学号: \n";i;scanf"%s";&;printf" 请输入%d号的新姓名: \n";i;scanf"%s";&si-1.num;forj=0;j<MAXM;j++{printf" 请输入课程%s的成绩为:\n";&cj.subject;scanf"%f";&hj;si-1.scorej =hj;a=a+si-1.scorej;si-1.sum=a;si-1.avg=si-1.sum/MAXM;}void print //4学生成绩删除{int i;j;k;b;printf" 请输入删除学生的位置1~%d 号:\n";R;scanf"%d";&k;do{ifk<1||k>R{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&k;}b=k;}whileb<1||b>R;i=k-1;fori;i<R;i++{;si+;strcpysi.num;si+1.num;si.sum=si+1.sum;si.avg=si+1.avg;forj=0;j<MAXM;j++{si.scorej=si+1.scorej;}}R=R-1;printf"删除成功 \n";}void total //5.学生成绩统计{int i;j;float aMAXM;b=0;printf"学号:姓名:课程%s的分数:课程%s的分数: 总成绩:平均成绩:\n";c0.subject;c1.subject;fori=0;i<R;i++{printf"%s%10.2s%16.2f%16.2f%16.2f%16.2f\n";si.num;;si.score0 ;si.score1;si.sum;si.avg;}fori=0;i<MAXM;i++{forj=0;j<R;j++{b=b+sj.scorei;}ai=b/R;b=0;}fori=0;i<MAXM;i++{printf" 全班课程%s的平均分为:%f\n";ci.subject;ai;}printf"排序完毕.\n";system"pause";}void search //6查询成绩模块{int search1;int search2;int select;index;b;while1{printf" \n";printf" 1.按学号查询\n";printf" 2.按姓名查询\n";printf" 0.返回\n";printf" 请输入您的选择编号:\n";printf" \n";scanf"%d";&select;do{ifselect<0||select>2{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&select;}b=select;}whileb<0||b>2;switchselect{case 1:index=search1; break;case 2:index=search2;break;case 0:return;}ifindex=-1{int i;printf" \n";printf" 学号:%s \n"; sindex.num;printf" 姓名:%s \n"; ;printf" 总成绩:%f \n"; sindex.sum;printf" 平均成绩:%f \n"; sindex.avg;fori=0;i<MAXM;i++printf" 课程%s的成绩为:%f \n"; ci.subject;sindex.scorei;printf" \n";}else printf"没有这个同学..\n";}}int search1 //按学号查询模块{int i;char s_num12;printf" 请输入要查询的学号:";scanf"%s";&s_num;fori=0;i<MAXN;i++ifstrcmpsi.num;s_num==0break;ifi<MAXNreturn i;else return -1;}int search2 //按姓名查询模块{int i;char s_name10;printf" 请输入要查询的姓名:";scanf"%s";&s_name;fori=0;i<MAXN;i++;s_name==0break;ifi<MAXNreturn i;else return -1;}void save//7保存成绩模块{FILE fp;int i;j;k=0;char filename20;printf"请输入文件名请以 .txt 结束: ";scanf"%s";filename;iffp=fopenfilename; "w"==NULL{printf"打开文件失败.\n";return;}fprintffp; "该班学生数和所修课程数分别为:%d;%d\n\n";R;MAXM; fprintffp; "该班所修的课程有:\n";forj=0;j<MAXM;j++fprintffp; "课程%d:%s\n";1+j;cj.subject;fprintffp; "下面是该班学生信息:\n\n";fori=0;i<R;i++{fprintffp; "学号:%s 姓名:%s\n";si.num;;forj=0;j<MAXM;j++{fprintffp; "%s:%5.2f\n";cj.subject;sk.scorej;}fprintffp; "学生总成绩:%5.2f\n学生平均成绩:%5.2f\n\n";si.sum;si.avg;k++;}fclosefp;printf"\n\n 保存成功\n\n\n\n";fclosefp;printf"保存完毕.\n";}void end //8.结束{system"cls";system"color f4";printf"\n";printf"\n";printf"\n";printf" █◣◢█◣◢█◣◢█▁▁\n";printf"█████████████\\//\n";printf"\n";printf"◢█████████████◣//\\\n";printf"\n";printf"◢███████████████◣ ̄▌ ̄\n";printf"\n";printf" ██●███●██▌ \n";printf"\n";printf" ██◣◢███◣◢██▌\n";printf"\n";printf" ◥█████◤^◥█████◤▌\n";printf"\n";printf" ◥████◣/\◢████◤◢██\n";printf"\n";printf"◢█████████████◢██◤\n";printf"\n";printf"◢████████████████ \n";printf"\n";printf" ██◤◢███◤◥███◣\n";printf"\n";printf" ◢███◤◥███◣\n";printf"\n";printf" ████████ \n";printf"\n";printf"\n";printf"\n\n 谢谢您的使用..BYE\n\n\n\n\n\n\n\n";system"color f2";system"color f1";system"color f3";system"color fE";system"color fB";system"color f5";system"color f9";system"color f6";system"color f1";system"color f3";system"color fE";system"color fB";system"color f5";system"color f9";system"color f6";system"color f1";system"color f3";system"color f5";system"color f9";system"color f6";exit0;}。

C语言课程设计报告(学生成绩管理系统)

C语言课程设计报告(学生成绩管理系统)

C语言课程设计报告:学生成绩管理系统系统需求一、当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息。

二、学生成绩查询: 输入一个学号,在文件中查找此学生, 若找到则输出此学生的全部信息和成绩;若找不到则输出查找失败的信息。

同时也可以全部把各科的平均成绩,最高和最低分输出.三、新生插入:通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来.四、输出全部学生信息和全部学生成绩。

五、退出系统.六、附加说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。

总体设计一、仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。

2、查询模块:可用stu *lookdata(stu *p1)来实现。

找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。

3、插入模块:可用insert( )函数来实现。

其中通过学号的大小来比较的,并且以此来排序.4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage()、maverage()、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。

5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。

二、系统主模块结构图:详细设计一、界面设计此系统界面采用图形和数字化菜单设计。

主界面设计如下:学生成绩管理系统请选择相应的数字执行相应的功能:1:是否输入其他数据2:查看数据3:插入数据4:查找数据5:更新数据6:保留数据7:显示或打印数据8:语文成绩状况9:数学成绩状况10:英语成绩状况11:计算机成绩状况12:?13:退出系统二、数据结构设计:程序设计中用到的结构体类型:学生信息结构体类型:typedef struct student{char name[MAX];int num[MAX];char sex[MAX];int chinese;int mathematic;int english;int computer;struct student *next;}程序代码://原始密码是123456#include"stdio.h”#include"stddef.h"#include"stddef。

5学生成绩的输入输出和处理(循环)解读

5学生成绩的输入输出和处理(循环)解读
《C语言程序设计》
项目5 多人成绩的输入输出和处 理
《C语言程序设计》
清华大学出版社
本章内容要点
• while语句及其应用
• do-while语句及其应用 for语句及其应用 • break和continue语句的应 用。
《C语言程序设计》
清华大学出版社
本章任务
第5章
循环结构程序设计
在实际编程中,常常会利用循环结构重复执 行某些操作。本章要完成的任务是处理一批学生 成绩,要求计算出每个学生总分、平均分、最高 总分、最低总分,并结合选择结构程序设计,按 平均分输出及格人数和不及格人数。
《C语言程序设计》
清华大学出版社
5.1 while语句
average=(float)sum/10; /* 求平均成绩 */ printf("总成绩为:%d\n",sum); printf("平均成绩为:%.2f",average); }
第5章
循环结构程序设计
运行结果: 输入10个学生的考试成绩: 82 91 88 70 85 93 67 73 80 77 ↙ 总成绩为:806 平均成绩为:80.60
说明:
“表达式1”一般是是一个赋值表达式, 它用来给循环控制变量 赋初值; “表达式2”一般是一个关系表达式或逻辑表达式,它 决定什么时候退出循环;“表达式3”一般是个算术表达式,定义 循环控制变量每循环一次后按什么方式变化。这三个部分之间用 “;”间隔。
《C语言程序设计》
清华大学出版社
5.3
for语句
任务分解: 单一科目成绩的输入、输出和处理。

多种科目成绩的输入、输出和处理。
Байду номын сангаас

学生成绩查询c语言程序

学生成绩查询c语言程序

填写说明:1、同一名教师在不同教学班教授的同一门课程只须填写一份教学日历;由不同教师教授的同一门课程每人填写一份教学日历。

2、“作业、实验”栏中的作业,是指教师计划布置的,应该批改的作业。

3、法定假日不安排教学内容,其课次顺延安排。

系统开发语言作业现有一个班级,共10人,本学期共学习三门课程,设计一个学生成绩管理系统,要求如下:1、完成三门课程成绩输入;或单门课程录入、或同时录入三门课。

2、完成成绩排序:按单科成绩排序、按平均分排序;3、完成成绩统计:按单科分段统计人数、按平均分分段统计(60分以下,60-79分,80以上);4、用结构体完成学生姓名和成绩的输入:5、完成成绩查询:单科查询、平均分查询、按姓名查询、分段查询等;6、完成奖学金统计:三门课均高于90分,一等奖学金;三门课均高于80分,二等奖学金,统计获奖学金人数7、完成成绩输出:按单科输出、输出所有成绩、按平均分由高到低输出,输出奖学金名单等;.作业要求第1、2、3周、完成成绩录入、排序和统计第4、5、6周、完成菜单和函数编制第2、8、9周、完成成绩查询和统计第10、11周、完成查询输出第12、13周、讲程序进行函数化、模块化第14、15周、应用指针、指针函数以及函数指针等第16周,完善程序、验收。

最后打印出完整代码清单代码如下:#include<stdio.h>struct student{float math;float Chinese;float English;float average;char name[5];};void inputgread(struct student stu) //输入成绩{int a=0;scanf("%s",);printf("按顺序输入数学成绩,语文成绩,英语成绩");scanf("%f%f%f",&stu.math,&stu.Chinese,&stu.English); }void Chinesecompositor(struct student stu[]) //按语文排序{int num=0,num2=0;struct student p;for(num2;num2<9;num2++){for(num;num<9;num++)if(stu[num].Chinese<stu[num+1].Chinese){p=stu[num];stu[num]=stu[num+1];stu[num+1]=p;}}}for(num=0;num<10;num++){printf("%c:%f",stu[num].name,stu[num].Chinese); }}void mathcompositor(struct student stu[]) //按数学排序{int num=0,num2=0;struct student p;for(num2;num2<9;num2++){for(num;num<9;num++)if(stu[num].math<stu[num+1].math){p=stu[num];stu[num]=stu[num+1];stu[num+1]=p;}}}for(num=0;num<10;num++){printf("%c:%f",stu[num].name,stu[num].math);}}void Englishcompositor(struct student stu[]) //按英语排序{int num=0,num2=0;struct student p;for(num2;num2<9;num2++){for(num;num<9;num++)if(stu[num].English<stu[num+1].English){p=stu[num];stu[num]=stu[num+1];stu[num+1]=p;}}}for(num=0;num<10;num++){printf("%c:%f",stu[num].name,stu[num].English); }}void Average(struct student stu) //平均分{int num=0;stu.average=(stu.Chinese+stu.English+stu.math)/3; }void Averagecompositor(struct student stu[])//按平均分排序{int num=0,num2=0;struct student p;for(num2;num2<9;num2++){for(num;num<9;num++){if(stu[num].average<stu[num+1].average){p=stu[num];stu[num]=stu[num+1];stu[num+1]=p;}}}for(num=0;num<10;num++){printf("%c:%f",stu[num].name,stu[num].average);}}void namecheck(struct student stu[],char *na) //按姓名查询{int num=0;for(num;num<10;num++){if (na==stu[num].name){printf("姓名:%s 数学:%f 语文:%f 英语:%f",stu[num].name,stu[num].math,stu[num].English);}}}void scholarship(struct student stu[]) //奖学金{int num=0,count=0;printf("一等奖学金名单:\n");for(num;num<10;num++){if(stu[num].Chinese>=90&&stu[num].English>=90&&stu[n um].math>=90){printf("%s ",stu[num].name);count++;}}printf("\n二等奖学金名单:\n");for(num;num<10;num++){if(stu[num].Chinese>=80&&stu[num].English>=80&&stu[n um].math>=80){printf("%s ",stu[num].name);count++;}}printf("奖学金人数:%d",count);}void scorecut(struct student stu[],int n)//分数段{int num=0,count=0;switch(n){case 1:{printf("语文成绩分数段:\n");printf("90分以上:\n");for(num;num<10;num++){if(stu[num].Chinese>=90){printf("%s\n",stu[num].name);}}printf("80---90: \n");for(num=0;num<10;num++){if(stu[num].Chinese>=80&&stu[num].Chinese<90) {printf("%s\n",stu[num].name);}}printf("70--80: \n");for(num=0;num<10;num++){if(stu[num].Chinese>=70&&stu[num].Chinese<80) {printf("%s\n",stu[num].name);}}printf("60--70: \n");for(num=0;num<10;num++){if(stu[num].Chinese>=60&&stu[num].Chinese<70) {printf("%s\n",stu[num].name);}}printf("不及格: \n");for(num=0;num<10;num++){if(stu[num].Chinese<60){printf("%s\n",stu[num].name);}}}case 2:{printf("平均分成绩分段:\n");printf("90分以上:\n");for(num;num<10;num++){if(stu[num].average>=90){printf("%s\n",stu[num].name);}}printf("80---90: \n");for(num=0;num<10;num++){if(stu[num].average>=80&&stu[num].average<90) {printf("%s\n",stu[num].name);}}printf("70--80: \n");for(num=0;num<10;num++){if(stu[num].average>=70&&stu[num].average<80) {printf("%s\n",stu[num].name);}}printf("60--70: \n");for(num=0;num<10;num++){if(stu[num].average>=60&&stu[num].average<70) {printf("%s\n",stu[num].name);}}printf("不及格: \n");for(num=0;num<10;num++){if(stu[num].average<60){printf("%s\n",stu[num].name);}}}}}void menu(){printf(" 1.成绩录入\n");printf(" 2.成绩查询\n");printf(" 3.分数段查询\n");printf(" 4.奖学金查询\n");printf(" 5.成绩排序\n");}main(){struct student stu[10];int num=0,n;char *na;while(1){menu();scanf("%d",&n);switch(n){case 1:for(num;num<10;num++){printf("输入第%d个学生姓名",num+1);inputgread(stu[num]);Average(stu[num]);}break;case 2:{printf(" 1.按姓名查询\n");printf(" 2.查询平均分\n");printf(" 3.退出查询\n");scanf("%d",&n);switch(n){case 1:{printf("输入学生姓名:");scanf("%s",&na);namecheck(stu,na);}case 2:{for(num=0;num<10;num++){printf("3科平均分:\n");printf("%c:%f\n",stu[num].name,stu[num].average);}}case 3: break;}}case 3:{}case 4:{printf(" 1.语文单科成绩分段\n");printf(" 2.平均分分段\n");scanf("%d",&n);switch(n){case 1:scorecut(stu,n);case 2:scorecut(stu,n);case 3:break;}}case 5:{printf("按数学成绩排序:\n");mathcompositor(stu);printf("按语文成绩排序: \n");Chinesecompositor(stu);printf("按英语成绩排序: \n");Englishcompositor(stu);printf("按平均分排序: \n");Averagecompositor(stu);}}}}。

学生成绩(C语言程序)

学生成绩(C语言程序)

/*1、一个班级有M=5个学生,每个学生有N=3门成绩,一个学号Num。

均由键盘输入。

a) 每个学生的平均成绩,连同学号,输出。

要求每行输出一个同学,其格式为:学号,平均成绩b) 按照学生平均成绩从高到低排序后,连同学号,输出。

要求每行输出一个同学,其格式为:学号,平均成绩c) 全班每门课程的平均成绩,输出。

要求每行输出一门平均成绩,保留小数点后两位,比如:输出:第一门课程的平均成绩:90.35第二门课程的平均成绩:89.86第三门课程的平均成绩:77.682、输入一个长度不超过32的字符串,判断它是否回文。

如:ab22ba,level 均为回文。

3、编一个程序,将两个字符串连接起来,作为另外一个字符串输出。

不要用strcat 函数。

(例:输入china 和pliceman 两个字符串,结果应为chinapliceman 字符串)4、用选择法对7个字符串排序,并输出。

7个字符串用gets函数输入。

*/#include<stdio.h>#include<string.h>#define NUM 5int main(){struct student{int ID;int score1;int score2;int score3;double ave;}stu[5],t;int a,b,c;double p1,p2,p3;for(a=0;a<NUM;a++){printf("请输入第%d位同学的三门课程成绩:\n",a+1);scanf("%d %d %d",&stu[a].score1,&stu[a].score2,&stu[a].score3);printf(" 学号第一门成绩第二门成绩第三门成绩平均分\n");stu[a].ave=(stu[a].score1+stu[a].score2+stu[a].score3)/3;stu[a].ID=a+1;printf("%5d %5d %5d %5d %-8.1f\n",stu[a].ID,stu[a].score1,stu[a].score2,s tu[a].score3,stu[a].ave);}p1=(stu[0].score1+stu[1].score1+stu[2].score1+stu[3].score1+stu[4].score1)/3;p2=(stu[0].score2+stu[1].score2+stu[2].score2+stu[3].score2+stu[4].score2)/3;p3=(stu[0].score3+stu[1].score3+stu[2].score3+stu[3].score3+stu[4].score3)/3;for(c=0;c<NUM;c++){for(b=0;b<NUM-c-1;b++){if(stu[b].ave>stu[b+1].ave){t=stu[b];stu[b]=stu[b+1];stu[b+1]=t;}}}printf("第一门课程全班平均分%.2lf\n",p1);printf("第二门课程全班平均分%.2lf\n",p2);printf("第三门课程全班平均分%.2lf\n",p3);printf("");return 0;}。

C语言排序学生成绩

C语言排序学生成绩
4.1.1 一维数组
以下对一维整型数组a的正确定义的是: A、int a(10) B、int n=10, a[n] C、int n; int a[n]; D、#define SIZE 10
scanf(“%d”,%n); int a[SIZE];
•C语言排序学生成绩
任务1 输入/输出多个学生一门 课程的成绩
4.1.2 一维数组的引用
C语言规定只能逐个引用数组元素而不能一次引 用整个数组。
数组名[下标表达式];
Example
int n=5,a[20];
若一个数组长度为n,其 下标值范围是0~(n-1)
a[1] a[n] a[3*n]
表示引用数组a中的第2个元素 表示引用数组a中的第6个元素 •C语表言排示序引学用生成数绩组a中的第16个元素
•C语言排序学生成绩
任务2 排序学生成绩
任务1中已经输入了50个同学的成 绩到数组中,现在需要确定如何对学 生成绩从低到高进行排序。
•C语言排序学生成绩
任务2 排序学生成绩
711111
155533
5 6
_
6 7
_
6 3
_
3 6
_
5 6
_
5 5
937776
两层循环结构
外层循环每次
399999
把操作范围内
设 系统为其余元素赋0
•C语言排序学生成绩
任务1 输入/输出多个学生一门 课程的成绩
4.1.3 一维数组的初始化
(3)当初值的个数多于数组元素的个数时, 编译出错
Example
int a[5]={1,2,3,4,5,6,7};
•C语言排序学生成绩
任务1 输入/输出多个学生一门 课程的成绩

c语言课后题答案

c语言课后题答案

1.编写程序,实现从键盘输入学生的3门课成绩,计算并输出其总成绩sum,平均成绩ave 和总成绩除3的余数rem。

程序如下:#include"stdio.h"main(){int score1,score2,score3,sum,ave,rem;printf("Please input 3 scores:");scanf("%d%d%d",&score1,&score2,&score3);sum=score1+score2+score3;ave=sum/3;rem=sum%3;printf("sum=%d,ave=%d,rem=%d",sum,ave,rem);}2.输入三角形的三边长,求三角形的面积。

已知三角形的三边长求三角形的面识公式为:area=))()((csbsass---,其中a、b、c为三角形三边,s=(a+b+c)/2。

程序如下:#include"stdio.h"#include"math.h"main(){float s,a,b,c,area;printf("Please input a,b,c:");scanf("%f%f%f",&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf("area=%f",area);}3.用格式控制符打印以下图形。

****************程序如下:#include"stdio.h"main(){printf("*\n");printf("***\n");printf("*****\n");printf("*******");}4. 编程从键盘上输入一行字符,依次读入字符并同时显示在屏幕上。

学生成绩管理系统代码c语言编写

学生成绩管理系统代码c语言编写

C程序学生管理系统/* Note:Your choice is C IDE */#include"stdio.h"#include"stdlib.h"#include"string.h"typedef struct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedef struct unit//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL) { printf("=>初始化失败!");return 0;}else{p->next=NULL;p->date.number=0;//头结点存放学生人数 printf("初始化成功!\n");return p;}}void add(unit *head)//增加学生{unit *p,*q;int m,n=0;q=head->next;p=(unit*)malloc(sizeof(unit));printf("=>请输入新生姓名!\n");gets(p->);fflush(stdin);printf("=>请输入学号!\n");while(n==0){scanf("%d",&m);fflush(stdin);if(q==NULL) n=1;while(q){if(q->date.number==m){printf("=>你输入的学号与已有同学的学号相同,请重新输入!\n");q=head->next;break;}else{q=q->next;if(q==NULL) n=1;}}}p->date.number=m;printf("=>请输入性别!\n");gets(p->date.sex);fflush(stdin);printf("=>请输入数学成绩\n");scanf("%d",&m);fflush(stdin);p->date.math=m;printf("=>请输入英语成绩\n");scanf("%d",&m);fflush(stdin);p->date.eglish=m;printf("=>请输入c语言成绩\n");scanf("%d",&m);fflush(stdin);p->date.clanguge=m;p->date.average=(p->date.math+p->date.eglish+p->date.clanguge);q=head->next;head->next=p;p->next=q;head->date.number++;}void deletion(unit *head)//删除一名学生{unit *p=head->next,*q=head;char N[10];printf("=>请输入你想删除的学生姓名!\n");gets(N);fflush(stdin);if(p==NULL)printf("=>系统无学生可删除!\n");while(p){if(strcmp(p->,N)==0){q->next=p->next;head->date.number--;printf("=>删除%s成功!\n",p->);free(p);break;}else{p=p->next;q=q->next;if(p==NULL)printf("=>你要删除的学生不存在,删除失败!\n");}}}int display(unit *head)//显示学生信息{unit *p=head->next;int m,n=0;char N[10];if(p==NULL){printf("=>系统无学生!\n");return 0;}while(n==0){printf("********************************************************* *********************\n");printf("=>请选择你的操作!\n");printf("=>\t\t\t1.显示所有\t2.按姓名查找\n\t\t\t3.按学号查找\t4.返回主菜单\n");scanf("%d",&m);fflush(stdin);switch(m){case 1:printf("\n=>该系统拥有%d名学生!\n\n",head->date.number);p=head->next;printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n\n");while(p){printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date.numb er,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);p=p->next;}break;case 2:printf("=>请输入查找姓名!\n");gets(N);fflush(stdin);p=head->next;while(p){if(strcmp(p->,N)==0){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t 综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date.numb er,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);break;}else{p=p->next;if(p==NULL)printf("=>你要查的学生不存在!");}}break;case 3: printf("=>请输入查找学号!\n");scanf("%d",&m);fflush(stdin);p=head->next;while(p){if(p->date.number==m){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t 综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date.numb er,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);break;}else{p=p->next;if(p==NULL)printf("=>你要查的学生不存在!\n");}}break;case 4:n=1;break;}}return 1;}int range(unit *head)//排序{unit *p=head,*q=head->next;int n,i,m=head->date.number;printf("********************************************************* **********************\n");printf("\t\t\t1.按学号\t2.按成绩\n\n");printf("=>请选择操作!\n》");scanf("%d",&n);fflush(stdin);if(q==NULL){ printf("=>无学生可排序!\n");return 0;}switch(n){case 2:for(i=0;i<m;i++)//按总分排序{p=head;q=head->next;while(q->next){if((q->date.average)<(q->next->date.average)){p->next=q->next;p=p->next;q->next=p->next;p->next=q;}else{p=p->next;q=q->next;}}}break;case 1:for(i=0;i<=m;i++)//按学号排序{p=head;q=head->next;while(q->next){if((q->date.number)>(q->next->date.number)){p->next=q->next;p=p->next;q->next=p->next;p->next=q;}else{p=p->next;q=q->next;}}}break;}printf("=>排序成功!\n");return 1;}void menu(){printf("\n********************************* 主菜单***************************************\n");printf("\t\t\t1.新建系统\t2.添加学生\n\t\t\t3.删除学生\t4.查看信息\n\t\t\t5.排列顺序\t6.读取信息\n\t\t\t7.保存信息\t8.退出系统\n");printf("=>请选择你的操作!\n");}int save(unit *head)//保存{FILE *fp;unit *p;p=head;if((fp=fopen("d:\\学生","wb+"))==NULL){printf("=>保存失败!");return 0;}while(p){fwrite(&(p->date),sizeof(student),1,fp);p=p->next;}printf("=>保存成功!");fclose(fp);return 1;}unit* read()//读入系统学生信息{int i;unit *p,*q,*head;FILE *fp;if((head=(unit*)malloc(sizeof(unit)))==NULL) { printf("=>开辟空间失败!");exit(1);}else{head->next=NULL;head->date.number=0;//头结点存放学生人数}q=head;if((fp=fopen("d:\\学生","rb"))==NULL){printf("=>系统无学生!\n");return 0;}fread(&(q->date),sizeof(student),1,fp);for(i=0;i<head->date.number;i++){if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>读值失败!");exit(1);}fread(&(p->date),sizeof(student),1,fp);p->next=q->next;q->next=p;}fclose(fp);return head;}void main(){int m=0,n, i;unit *head;printf("************************************************************* *******************\n\n");printf("\t\t\t* 欢迎使用学生成绩管理系统 * \n");printf("\n\t\t\t\t\t\t\t\t编译员:岳英明\n\n");printf("=>正在读取系统信息......\n");if((head=read())==0){printf("=>是否新建?\n");printf("\t\t\t是(1)\t\t否(2)\n");scanf("%d",&i);fflush(stdin);if(i==1)head=build();else if(i==2)exit(1);}elseprintf("=>信息导入成功!");while(m==0){menu();scanf("%d",&n);fflush(stdin);switch(n){case 1: head=build();break;case 2:add(head);break;case 3:deletion(head);break;case 4:display(head);break;case 5: range(head);break;case 6:head=read();if(head!=0) printf("=>读取存盘成功!\n");break;case 7:save(head);break;case 8:m=1;break;}}}。

学生成绩管理系统c语言代码(供参考)

学生成绩管理系统c语言代码(供参考)

C程序学生管理系统以下是用c语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考)#include"stdio.h”#include”stdlib.h”#include”string.h”typedef struct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedef struct unit//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf(”=〉初始化失败!”);return 0;}else{p->next=NULL;p-〉date.number=0;//头结点存放学生人数printf(”初始化成功!\n”);return p;}}void add(unit *head)//增加学生{unit *p,*q;int m,n=0;q=head-〉next;p=(unit*)malloc(sizeof(unit));printf(”=>请输入新生姓名!\n”);gets(p—〉);fflush(stdin);printf("=〉请输入学号!\n");while(n==0){scanf("%d”,&m);fflush(stdin);if(q==NULL) n=1;while(q){if(q—〉date。

number==m){printf("=>你输入的学号与已有同学的学号相同,请重新输入!\n”);q=head-〉next;break;}else{q=q->next;if(q==NULL) n=1;}}}p—〉date。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

问题:有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求用结构体解决,打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。

要求用input函数输入10个学生数据;用average函数求总平均分;用max 函数找出最高分的学生数据;总平均分和最高分学生的数据都在主函数中输出。

程序代码:
#include<stdio.h>
typedef struct _Student
{
char num[10];
char name[10];
float score[3];
}Student;
void input(Student msg[],int n)
{
for(int i=0;i<n;i++)
scanf("%s,%s,%f,%f,%f",msg[i].num,msg[i].name,&msg[i].score[0];&msg[i].score[1], &msg[i].score[2]);
}
float average(Student msg[],int n)
{
float sum=0;
for(int i=0;i<n;i++)
sum+=msg[i].score[0]+msg[i].score[1]+msg[i].score[2];
return sum/(n*3);
}
int max(Student msg[],int n)
{
float sum=0;
int m;
for(int i=0;i<n;i++)
{
if((msg[i].score[0]+msg[i].score[1]+msg[i].score[2])>sum)
{
sum=msg[i].score[0]+msg[i].score[1]+msg[i].score[2];
m=i;
}
}
return m;
}
int main()
{
int n,m,ave;
printf("请输入学生总数:\n");
Student msg[n];
input(msg,n);
ave=average(msg,n);
m=max(msg,n);
printf("%d个学生的总平均分为:%f\n",n,ave);
printf("%d个学生中总成绩最高的学生信息为:\n");
printf("%s,%s,%f",msg[m].num,msg[m].name,(msg[m].score[0]+msg[m].score[1]+msg[ m].score[2])/3);
return 0;
}。

相关文档
最新文档