ZKX's LAB

在c语言中怎样输出成绩的名次 c语言输出名次排名

2021-03-07知识4

C语言 输入N个学生成绩,求他们的名次 #includedefine N 3int main(){printf(\"请依次输入学生成绩\\n\");int a[N],b[N],c[N],i,j,k=0,position=1;int temp;for(i=0;i;i+){scanf(\"%d\",&a[i]);}for(i=0;i;i+){c[i]=a[i];}for(i=0;i;i+){for(j=i+1;j;j+){if(c[i][j]){temp=c[i];c[i]=c[j];c[j]=temp;}}}for(i=0;i;i+){for(j=0;j;j+){if(a[j]=c[k]){b[j]=position;position+;k+;}}}for(i=0;i;i+){printf(\"学成成绩:%d\\t学生名次:%d\\n\",a[i],b[i]);}return 0;}

在c语言中怎样输出成绩的名次 c语言输出名次排名

c语言编程:输出成绩排名 include<;stdio.h>;int main(){int i,j,temp,a[100]={0},ranking=0,n;printf(\"请输入学生数:\\n\");scanf(\"%d\",&n);printf(\"请输入学生成绩:\\n\");for(i=0;i;i+){scanf(\"%d\",&a。

c语言编程:输出成绩排名 #includeint main(){int i,j,temp,a[100]={0},ranking=0,n;printf(\"请输入学生数:\\n\");scanf(\"%d\",&n);printf(\"请输入学生成绩:\\n\");for(i=0;i;i+){scanf(\"%d\",&a[i]);}对成绩排序for(i=0;i;i+){for(j=i+1;j;j+){if(a[i][j]){temp=a[i];a[i]=a[j];a[j]=temp;}}}printf(\"成绩由高到低顺序排序:\\n\");for(i=0;i;i+){ranking;if((a[i]=a[i-1])){ranking=ranking-1;}printf(\"%d:%d\\n\",a[i],ranking);}printf(\"\\n\");return 0;}

C语言成绩排名次。 此题有最大人数限制,所以可用数组实现。创建一个结构体类型,成员包括学号、题设各科成绩、总分和平均分。在主函数中声明一个30个此结构体元素的数组,然后输入数据,再进制排序、输出和查找。参考代码如下:includetypedef struct stu{/创建结构类型int MT,EN,PH,TO,ID;double AV;}STU;int main(void){STU s[30],t;int i,j,k,n;printf(\"Please enter the student's scores():\\n\");printf(\"\\n STUID MA EN PH\\n-\\n\");n=0,j=10000;while(1){/输入数据printf(\"%d\",s[n].ID=j+);if(scanf(\"%d\",&s[n].MT),s[n].MT)break;scanf(\"%d%d\",&s[n].EN,&s[n].PH);s[n].TO=s[n].EN+s[n].MT+s[n].PH;s[n+].AV=s[n].TO/3.0;}printf(\"\\n STUID MATH ENGL PHYS TOTA AVER\\n\");printf(\"-\\n\");for(i=0;i;i+){/排序for(k=i,j=k+1;j;j+)if(s[k].TO[j].TO)k=j;if(k-i)t=s[k],s[k]=s[i],s[i]=t;printf(\"%6d%4d%5d%5d%5d%7.2f\\n\",s[i].ID,s[i].MT,s[i].EN,s[i].PH,s[i].TO,s[i].AV);输出表格}printf(\"Please enter ID(%d~%d).\\n\",10000,9999+n);查询scanf(\"%d\",&k);for(i=0;i;i+)if(s[i].ID=k){printf(\"\\n STUID MATH ENGL PHYS TOTA AVER\\n\");printf(\"-\\n\");printf(\"%6d%4d。

在c语言编程中 怎样按名次输出同学的姓名和学号 includeincludetypedef struct stuInfo{int id;学号char name[10];姓名int score;成绩struct stuInfo*next;}STUINFO;void printfStu(STUINFO*stuHead);打印学生链表void inputInfo(STUINFO*stuHead);输入学生成绩信息void orderByScore(STUINFO*stuHead);按照成绩名次排列。int main(){STUINFO*stuHead=(STUINFO*)malloc(sizeof(STUINFO));stuHead->;next=NULL;inputInfo(stuHead);printfStu(stuHead);printf(\"按照名次排列,依次为:第一名、第二名、第三名。\\n\");orderByScore(stuHead);printfStu(stuHead);}void printfStu(STUINFO*stuHead){printf(\"学号 姓名 成绩\\n\");while(stuHead->;next。NULL){printf(\"%d%s%d\\n\",stuHead->;next->;id,stuHead->;next->;name,stuHead->;next->;score);stuHead=stuHead->;next;}}void inputInfo(STUINFO*stuHead){int id;STUINFO*stuTail=NULL;STUINFO*stuNew=NULL;while(1){stuNew=(STUINFO*)malloc(sizeof(STUINFO));printf(\"输入学生的学号、姓名、成绩(学号输入负数结束输入):\");scanf(\"%d\",&id);if(id)break;elsestuNew->;id=id;scanf(\"%s%d\",stuNew->;name,&stuNew->;score);stuNew->;next=NULL;if(stuHead。

c语言编程,输出10位同学的成绩及其所对应的名次。(相同的成绩及名次可以不重复输出) #includestruct student{char szName[100];int score;成绩等号重载student operator=(student&st){sprintf(szName,st.szName);score=st.score;return*this;}};int main(){const int stuCount=10;student stuArray[stuCount];for(int i=0;i;i+){printf(\"请输入第%d个学生的姓名 成绩\\n\",(i+1));scanf(\"%s%d\",stuArray[i].szName,stuArray[i].score);}排序for(int i=0;i;i+){for(int j=0;j;j+){if(stuArray[j+1].score>;stuArray[j].score){student stu=stuArray[j];stuArray[j]=stuArray[j+1];stuArray[j+1]=stu;}}}printf(\"名次\\t姓名\\t成绩\\n\");for(int i=0;i;i+){printf(\"%d\\t%s\\t%d\\n\",(i+1),stuArray[i].szName,stuArray[i].score);}return 0;}运行结果如下:

c语言中排名问题 关于这个程序,我觉得应该是考你对结构体的掌握结构体在我个人的理解,就是把一些有联系的东西集合起来,方便调用打个比方有二十个人,要记录他们的身高和体重,如果用一般数组记录身高和体重,那么就得定义两个数组,而且用起来还麻烦但用结构体的话,只用一个结构体的数组就行了,方便,简洁includedefine N 2/定义学生的个数,为了方便调试,我只写了2,你可以把2改为你想要的任意学生数struct STUDENT/定义一个结构体{char name[8];int num;float score[3];float average;};void output(struct STUDENT*stu,int n)/输出{int i,j,max=0;for(i=0;i;i+){for(j=0;j;j+){if(stu[j].average>;stu[i].average)max=j;先输出平均分最高的}printf(\"%-8s%-8d%-6.1f\\n\",stu[max].name,stu[max].num,stu[max].average);stu[max].average=-1;输出后标记为-1}}void input(struct STUDENT*stu,int n)/输入{int i;for(i=0;i;i+){scanf(\"%s%d%f%f%f\",&stu[i].name,&stu[i].num,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);}}void calculate(struct STUDENT*stu,int n)/计算平均分{int i;for(i=0;i;i+){stu[i].average=(stu[i].score[0]+stu[i].score。

用C语言编程 统计学生成绩 排名 查询能输出名次(最好能循环输入学生成绩或者能循环查询) 如一楼所言,没有多少人有这个时间来给你写.如果你只是为了交作业,建议你端正你的学习态度。如果你是一名学生成绩管理人员,建议稍微学一下Office,用Office进行学生成绩查询排名是很快的.

C语言并列名次如何输出? #include\"stdio.hint main(int argc,char*argv[]){int n,i,j,k,t,s[30];printf(\"How many students(1~30)?\\nn=\");while(scanf(\"%d\",&n)。1|n|n>;30){/限制学生数1~30,若输错了要求重输fflush(stdin);printf(\"Input error,redo:\");}printf(\"Enter each student's total grade.\\n\");for(i=0;i;scanf(\"%d\",s+i+));输入每个学生的成绩printf(\"\\n\");for(i=0;i;i+){/这里开始选择法排序for(k=i,j=k+1;j;j+)if(s[k][j])k=j;if(k-i)j=s[k],s[k]=s[i],s[i]=j;到这里排序内容结束,下面是顺便输出if。i|s[i]。s[i-1])/这个if小算法解决重分为同名次且占位问题t=i+1;printf(\"%d:\\t%d\\n\",s[i],t);输出}return 0;}运行样例:

在c语言中怎样输出成绩的名次 脑子是个好东西,可惜你没有,你没头没尾的发这个问题,鬼知道你要怎么样。

#c 语言的标点符号输出#c语言输出特殊图案#c语言输出与输入指令#输入三个数输出最大值c语言#c语言怎样输出出生日期

随机阅读

qrcode
访问手机版