当前位置:首页 » 编程语言 » c语言45人五门课程的总分排序
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言45人五门课程的总分排序

发布时间: 2023-01-20 00:25:17

c语言成绩排序,做完微信红包

#include"stdio.h"
#include<stdlib.h>
#include<string.h>
#include"time.h"
structabcd{
charID[11],name[17];
ints1,s2,s3,s4,s5;
doubleave;
structabcd*next;
};
voidinp(structabcd(*p)[45]){
inti,j,k,t;
charid[11]="0000000000";
for(i=0;i<4;i++){
for(j=0;j<45;j++){
if(++id[9]>'9')
for(k=9;k>0;k--)
id[k]-=10,id[k-1]++;
strcpy(p[i][j].ID,id);
for(t=0,k=rand()%16;k;k--)
p[i][j].name[t++]=rand()%26+'A';
p[i][j].name[t]='';
p[i][j].s1=rand()%101;
p[i][j].s2=rand()%101;
p[i][j].s3=rand()%101;
p[i][j].s4=rand()%101;
p[i][j].s5=rand()%101;
}
}
}
voidaverage(structabcd(*p)[45]){
inti,j;
for(i=0;i<4;i++)
for(j=0;j<45;p[i][j].ave=(p[i][j++].s1+p[i][j].s2+p[i][j].s3+p[i][j].s4+p[i][j].s5)/5.0);
}
voidselsort(structabcd(*p)[45]){//4个班统一选择排序
inti,j,k,t;
structabcdq;
for(t=0;t<4;t++)
for(i=0;i<45;i++){
for(k=i,j=k+1;j<45;j++)
if(p[t][k].ave<p[t][j].ave)
k=j;
if(k!=i)
q=p[t][k],p[t][k]=p[t][i],p[t][i]=q;
}
}
voidbubsort(structabcd(*p)[45]){//4个班统一冒泡排序
inti,j,t;
structabcdq;
for(t=0;t<4;t++)
for(i=0;i<45;i++)
for(j=0;j<44;j++)
if(p[t][j].ave<p[t][j+1].ave)
q=p[t][j],p[t][j]=p[t][j+1],p[t][j+1]=q;
}
voidgetlink(structabcd(*p)[45],structabcd*x){//弄成链表
inti,j,k,t;
structabcdq;
for(t=i=0;i<4;i++)//把4个班的成绩拷贝到临时数组x中
for(j=0;j<45;x[t++]=p[i][j++]);
for(i=0;i<t;i++){//对数组x降序排序
for(k=i,j=k+1;j<t;j++)
if(x[k].ave<x[j].ave)
k=j;
if(k!=i)
q=x[k],x[k]=x[i],x[i]=q;
}
for(i=1;i<t;x[i-1].next=x+i++);//把数组p搞成单链表
x[i-1].next=NULL;
}
intmain(intargc,char*argv[]){
structabcdc[4][45],t[4*45],*p;
intk;
srand((unsigned)time(NULL));
inp(c);
average(c);
bubsort(c);
selsort(c);//这是脱了裤子FP,无论用什么方法排序结果是一样的,不懂为何这么出题
getlink(c,t);
printf("----------Lookat...---------- ");
for(k=0,p=t;p;p=p->next)//将链表中的值输出
printf(++k%15?"%5.1f":"%5.1f ",p->ave);
if(k%10)
printf(" ");
return0;
}

运行样例:

这种题打字太多……

㈡ c语言 学生信息包括,学号,姓名,五门功课的成绩.输入输出。总分排序

#include <stdio.h>
#define N 200
#define SCORES 5
#define NUMLEN 10
struct std_type{
char no[NUMLEN];/*学号*/
char *name;/*名字字符串指针*/
int scores[SCORES];/*五门功课的成绩*/
};
struct std_type students[N];
int order[N];
int total[N];
/*[函数]输入一个学生信息函数*/
int readastu(struct std_type *spt)
{
int len,j;
char buf[120];/*输入学号*/

printf("\nNumber : ");
if(scanf("%s",buf)==1)
strncpy(spt->no,buf,NUMLEN-1);
else
return 0;/*CTRL+Z结束输入*/
printf("Name : ");/*输入姓名*/
if(scanf("%s",buf)==1)
{
len=strlen(buf);
spt->name=(char*)malloc(len+1);/*申请储存姓名的空间*/
strcpy(spt->name,buf);
}
else return 0;/*CTRL+Z结束输入*/
printf("Scores : ");/*输入成绩*/
for(j=0;j<SCORES;j++)
if(scanf("%d",spt->scores+j)!=1)
break;
if(j==0)/*一个成绩也没有输入*/
{
free(spt->name);/*释放存储姓名的空间*/
return 0;
}
for(;j<SCORES;j++)/*少数未输入的成绩用0分代替*/
spt->scores[j]=0;
return 1;
}
/*[函数]输出一个学生信息的函数*/
int writeastu(struct std_type *spt)
{
int i;

printf("Number : %s\n",spt->no);/*输出学号*/
printf("Name : %s\n",spt->name);/*输出姓名*/
printf("Scores : ");/*输出成绩*/
for(i=0;i<SCORES;i++)
printf("%4d",spt->scores[i]);
printf("\n\n");
}

main()
{
int n,i,j,t;
clrscr();
for(n=0;readastu(students+n);n++);/*用冒泡法对学生信息数组排序*/
for(i=0;i<n;i++)
{
order[i]=i;/*预置第i个输入的学生*/
for(t=0,j=0;j<SCORES;j++)/*求第i个学生的总分*/
t+=students[i].scores[j];
total[i]=t;
}/*冒泡排序*/
for(i=0;i<n-1;i++)/*共扫视n-1遍*/
for(j=0;j<n-1-i;j++)
if(total[order[j]]<total[order[j+1]])
{/*交换名次*/
t=order[j];
order[j]=order[j+1];
order[j+1]=t;
}
for(j=0;j<n;j++)/*输出*/
writeastu(students+order[j]);
printf("\n Press any key to quit...\n");
getch();
}


㈢ 要求用c语言编写,将总分排序(由高到低),并按总分从高到低输出成绩表

#include<stdio.h>

#include<stdlib.h>

structtest

{

charnum[3];

charname[20];

charsex[10];

intrun;

intfw;

intyw;

intswim;

inttotal;

}a[10];

voidmain()

{

inti,j;

structtestb;

FILE*fp;

fp=fopen("1.txt","r");

if(fp==NULL)

{

printf("文件打开错误! ");

exit(0);

}

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

fscanf(fp,"%s%s%s%d%d%d%d%d ",a[i].num,a[i].name,a[i].sex,&a[i].run,&a[i].fw,&a[i].yw,&a[i].swim,&a[i].total);

fclose(fp);

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

for(j=0;j<10-i;j++)

if(a[j].total<a[j+1].total)

{

b=a[j];

a[j]=a[j+1];

a[j+1]=b;

}

printf(" 编号姓名性别5km俯卧撑仰卧起坐400m游泳总分 ");

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

printf("%s%s%s%d%d%d%d%d ",a[i].num,a[i].name,a[i].sex,a[i].run,a[i].fw,a[i].yw,a[i].swim,a[i].total);

printf(" ");

}

好了这下满足你的要求了!

!!!!!!!!对了,你自己改下文件名字哈!我为了方便就没用你写的那个文件名!

㈣ C语言综合问题:输入5个学生的姓名、学号和5门课成绩计算每个学生的总分和平均分并按从高到低排序

} int student_sort(student s[], int s_size){ for(int n1=0;n1<s_size;n1++) { for(int n2=n1+1;n2<s_size;n2++) { if(s[n1].score_total<s[n2].score_total) { student_swap(&s[n1], &s[n2]); } } } return 0;} int main(){ student s[5]; for(int n=0;n<5;n++) { printf("请输入学生学号:"); scanf("%d", &s[n].id); printf("请输入学生姓名:"); scanf("%d", &s[n].name); printf("请输入第一门课成绩:"); scanf("%d", &s[n].score1); printf("请输入第二门课成绩:"); scanf("%d", &s[n].score2); printf("请输入第三门课成绩:"); scanf("%d", &s[n].score3); printf("请输入第四门课成绩:"); scanf("%d", &s[n].score4); printf("请输入第五门课成绩:"); scanf("%d", &s[n].score5); s[n].score_total = score_sum(s, 5); s[n].score_avg = score_avg(s, 5); printf("总成绩=%f,平均成绩=%f\n", s[n].score_total, s[n].score_avg); } return 0;}

㈤ 要求用c语言编写,将总分排序(由高到低),并按总分从高到低输出成绩表

#include "stdio.h"
#include "string.h"
struct student
{
int id;
char name[30];
char birth[30];
int score[3];
}stu[10];

void input(int num)//输入记录
{
for(int i=0;i<num;i++)
{
printf("开始输入第%d个学生记录\n",i+1);
printf("输入第%d个学生记录的学号:",i+1);
scanf("%d",&stu[i].id);
printf("输入第%d个学生记录的姓名:",i+1);
scanf("%s",stu[i].name);
printf("输入第%d个学生记录的生日:",i+1);
scanf("%s",stu[i].birth);
printf("输入第%d个学生记录的第一门功课成绩:",i+1);
scanf("%d",&stu[i].score[0]);
printf("输入第%d个学生记录的第二门功课成绩:",i+1);
scanf("%d",&stu[i].score[1]);
printf("输入第%d个学生记录的第三门功课成绩:",i+1);
scanf("%d",&stu[i].score[2]);
}
}
void output(int num)//输出记录
{
for(int i=0;i<num;i++)
{
printf("开始输出第%d个学生记录\n",i+1);
printf("id:%d\n",stu[i].id);
printf("name:%s\n",stu[i].name);
printf("birth:%s\n",stu[i].birth);
printf("score1:%d\n",stu[i].score[0]);
printf("score2:%d\n",stu[i].score[1]);
printf("score3:%d\n",stu[i].score[2]);
}
}
void meansore(int num)//求每门课程平均值
{
int i,j;
int mean[3];mean[0]=0;mean[1]=0;mean[2]=0;
for(i=0;i<num;i++)
{
for(j=0;j<3;j++)
{
mean[j]+=stu[i].score[j];
}
}
for(i=0;i<3;i++)
{
printf("第%d门功课的平均成绩:%.2f\n",i+1,mean[i]*1.0/num);
}
}
void sortmean(int num)//按学生平均分由小到大排序
{
student temp;
int i,j;
int maxt,index;
for(i=0;i<num-1;i++)
{
index=i;
maxt=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
for(j=i+1;j<num;j++)
{
if(stu[j].score[0]+stu[j].score[1]+stu[j].score[2]<maxt)
{
maxt=stu[j].score[0]+stu[j].score[1]+stu[j].score[2];
index=j;
}
}
temp=stu[i];
stu[i]=stu[index];
stu[index]=temp;
}
}
void printfail(int num)//打印不及格
{
int i,j;
int no=0;
for(i=0;i<num;i++)
{
for(j=0;j<3;j++)
{
if(stu[i].score[j]<60)
{
no++;
printf("输出第%d个不及格学生记录\n",no);
printf("id:%d\n",stu[i].id);
printf("name:%s\n",stu[i].name);
printf("birth:%s\n",stu[i].birth);
printf("score1:%d\n",stu[i].score[0]);
printf("score2:%d\n",stu[i].score[1]);
printf("score3:%d\n",stu[i].score[2]);
break;
}
}
}
if(no==0)
{
printf("没有不及格的学生\n");
}
}
void sortage(int num)//按年龄排序
{
student temp;
int i,j;
int index;
char birthtemp[30];
for(i=0;i<num-1;i++)
{
index=i;
strcpy(birthtemp,stu[i].birth);
for(j=i+1;j<num;j++)
{
if(strcmp(birthtemp,stu[j].birth)<0)
{
strcpy(birthtemp,stu[j].birth);
index=j;
}
}
temp=stu[i];
stu[i]=stu[index];
stu[index]=temp;
}
}
int main()
{
int n=2;//指定要输入的学生记录数目 这取2个为例
input(2);
output(2);
meansore(2);
printfail(2);
sortmean(2);
output(2);
sortage(2);
output(2);
return 0;
}
我机器上是可以运行的。

㈥ 请问这个C程序怎么写输入30个学生5门课程的成绩,按照每个学生的平均分由高到低排序。

#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "windows.h"
#include "string.h"

void Error();
void Input();
void Find();
void Output();
void Paixu();

struct node
{
int code;
char name[20];
char sex[3];
int age;
int chinese,english,computer,math,total;
float average;

};

struct node student[100],temp,New;

void MainMenu()
{
int cho;

printf("\n\t学员信息管理系统\n");
printf("*******************************\n");
printf("=\t【1】输入数据 =\n");
printf("=\t【2】查找数据 =\n");
printf("=\t【3】输出数据 =\n");
printf("=\t【4】排序数据 =\n");
printf("=\t【5】退出 =\n");
printf("*******************************\n");

printf("\n请输入你的选择(1-5):");
scanf("%d",&cho);

switch(cho)
{
case 1:
system("cls");
Input();
break;
case 2:Find();break;
case 3:Output();break;
case 4:Paixu();break;
case 5:exit(0);break;
default:Error();break;
}

}

void Paixu()//排序数据
{
int i,j;
//按平均分数的高低排序
for(i=0;i<=3;i++)
{
for(j=i+1;j<=4;j++)
{
if(student[i].average<student[j].average)
{
temp=student[i];
student[i]=student[j];
student[j]=temp;
}
}
}
printf("数据按平均分高低排列的情况如下:\n");
Output();
}

void Output()//输出数据
{
int i;
system("cls");

printf("数据的情况如下:\n");
for(i=0;i<=4;i++)
{
//输出每个成员变量的值
printf("\n******************************\n");
printf("\t学号:%d\n",student[i].code);
printf("\t姓名:%s\n",student[i].name);
printf("\t年龄:%d\n",student[i].age);
printf("\t英文成绩:%d\n",student[i].english);
printf("\t国文成绩:%d\n",student[i].chinese);
printf("\t计算机成绩:%d\n",student[i].computer);
printf("\t数学成绩:%d\n",student[i].math);
printf("\t总成绩:%d\n",student[i].total);
printf("\t平均成绩:%.2f\n",student[i].average);
}
printf("\n按任意键返回主界面......");
fflush(stdin);
getch();
system("cls");
MainMenu();
}

void Find()//查找数据
{
int n,m,i;
char ch,k[20];

system("cls");
lab1:printf("按学号查找(按1):\n");
printf("按姓名查找(按2):\n");
printf("请选择:");
scanf("%d",&n);

switch(n)
{
case 1:
printf("请输入学号:");
scanf("%d",&m);
if(m=student[i].code)
{
printf("******************************\n");
printf("\t学号:%d\n",student[i].code);
printf("\t姓名:%s\n",student[i].name);
printf("\t年龄:%d\n",student[i].age);
printf("\t英文成绩:%d\n",student[i].english);
printf("\t国文成绩:%d\n",student[i].chinese);
printf("\t计算机成绩:%d\n",student[i].computer);
printf("\t数学成绩:%d\n",student[i].math);
printf("\t总成绩:%d\n",student[i].total);
printf("\t平均成绩:%.2f\n",student[i].average);
printf("******************************\n");
}
break;
case 2:
printf("请输入姓名:");
scanf("%s",&k);
if(strcmp(k,student[i].name==0))
{
printf("******************************\n");
printf("\t学号:%d\n",student[i].code);
printf("\t姓名:%s\n",student[i].name);
printf("\t年龄:%d\n",student[i].age);
printf("\t英文成绩:%d\n",student[i].english);
printf("\t国文成绩:%d\n",student[i].chinese);
printf("\t计算机成绩:%d\n",student[i].computer);
printf("\t数学成绩:%d\n",student[i].math);
printf("\t总成绩:%d\n",student[i].total);
printf("\t平均成绩:%.2f\n",student[i].average);
printf("******************************\n");
}
break;
default:
printf("该选择有误,选择只有(1或2),重新选择:");
goto lab1;
break;
}
printf("\n是否继续查找(y/n):");
lab2:fflush(stdin);
ch=getchar();
if(ch=='y'||ch=='Y')
{
system("cls");
goto lab1;
}
else if(ch=='n'||ch=='N')
{
printf("谢谢你的使用!\n");
}
else
{
printf("\n只许输入y/n字符,重输:");
goto lab2;
}

printf("\n按任意键返回主界面......");
fflush(stdin);
getch();
system("cls");
MainMenu();

}

void Input()//插入数据
{
int i;

for(i=0;i<=4;i++)
{
printf("\n请输入第%d位学员的学号:",i+1);
scanf("%d",&student[i].code);
fflush(stdin);

printf("请输入第%d位学员的姓名:",i+1);
gets(student[i].name);
fflush(stdin);

printf("请输入第%d位学员的性别:",i+1);
gets(student[i].sex);
fflush(stdin);

printf("请输入第%d位学员的年龄:",i+1);
scanf("%d",&student[i].age);
fflush(stdin);

printf("请输入第%d位学员的英文成绩:",i+1);
scanf("%d",&student[i].english);

printf("请输入第%d位学员的国文成绩:",i+1);
scanf("%d",&student[i].chinese);

printf("请输入第%d位学员的计算机成绩:",i+1);
scanf("%d",&student[i].computer);

printf("请输入第%d位学员的数学成绩:",i+1);
scanf("%d",&student[i].math);

student[i].total=student[i].english+student[i].chinese+student[i].computer+student[i].math;
student[i].average=(float)student[i].total/4;
printf("第%d位学员的总成绩为:%d\n",i+1,student[i].total);
printf("第%d位学员的平均成绩为:%.2f\n",i+1,student[i].average);

}

printf("\n按任意键返回主界面......");
fflush(stdin);
getch();
system("cls");
MainMenu();

}

void Error()
{
printf("\n输入错误,请输入(1-7)的整数:");
printf("\n按任意键结束......");
fflush(stdin);
getch();
system("cls");
MainMenu();
}

void main()
{
printf("\n\n\t\t*欢迎使用信息管理系统*");
printf("\n\t\t按任意键继续......");
fflush(stdin);
getch();
system("cls");

MainMenu();
}

㈦ 学生成绩排序 c语言设计

#include<iostream>
#include<string>
#include<iomanip>
#include<fstream>
using namespace std;
int n; //n个学校
int m; //m个男子项目
int w; //w个女子项目
struct pro //表示项目的结构体
{
string name; //项目名称
int snum[6]; //前5名学校的编号
}p[21];
struct school //表示学校的结构体
{
int num;
string name; //学校名称
int score; //学校总分
int male; //男子总分
int female; //女子总分
}sch[21];
int integral[5]={7,5,3,2,1};//前五名得分
void input()
{
int i,j,y,x;
printf("输入学校数目:");
y=0;
while(1)
{
scanf("%d",&n);
if(n>=1&&n<=20)y=1;
if(y)break;
else printf("输入数据有误,请重新输入:");
}
for(i=1;i<=n;i++)
{
printf("输入第%d个学校的名称:",i);
cin>>sch[i].name;
sch[i].score=0;
sch[i].female=0;
sch[i].male=0;
sch[i].num=i;
}
printf("输入男子项目数和女子项目数:");
y=0;
while(1)
{
scanf("%d%d",&m,&w);
if(m<=20&&m>=1&&w<=20&&w>=1)y=1;
if(y)break;
else printf("输入数据有误,请重新输入:");
}
for(i=1;i<=m+w;i++)
{
printf("输入第%d个项目的名称:\n",i);
cin>>p[i].name;
printf("输入第%d个项目的前5名的学校编号:\n",i);
for(j=1;j<=5;j++)
{
y=0;
while(1)
{
scanf("%d",&x);
if(x>=1&&x<=20)y=1;
if(y)break;
else printf("输入数据有误,请重新输入:");
}
p[i].snum[j]=x;
sch[x].score+=integral[j-1];
if(i<=m)sch[x].male+=integral[j-1];
else sch[x].female+=integral[j-1];
}
}
}
void print(int i)
{
cout<<sch[i].num<<setw(10)<<sch[i].name<<setw(8)<<sch[i].score<<setw(9)
<<sch[i].male<<setw(10)<<sch[i].female<<endl;
}
void bianhao() //按编号排序
{
int i,j;
school t;
for(i=1;i<n;i++)
{
for(j=i;j<=n;j++)
if(sch[i].num>sch[j].num)
{t=sch[i];sch[i]=sch[j];sch[j]=t;}
}
printf("\n按编号排列:\n");
printf("编号 学校名称 总分 男子总分 女子总分\n");
for(i=1;i<=n;i++)
print(i);
}
void zongfen() //按学校总分排序
{
int i,j;
school t;
for(i=1;i<n;i++)
{
for(j=i;j<=n;j++)
if(sch[i].score<sch[j].score)
{t=sch[i];sch[i]=sch[j];sch[j]=t;}
}
printf("\n按学校总分排列:\n");
printf("编号 学校名称 总分 男子总分 女子总分\n");
for(i=1;i<=n;i++)
print(i);
ofstream fout;
fout.open("运动会分数统计.txt");
fout<<"编号 学校名称 总分 男子总分 女子总分"<<endl;
for(i=1;i<=n;i++)
{fout<<sch[i].num<<setw(13)<<sch[i].name<<setw(8)<<sch[i].score<<setw(9)
<<sch[i].male<<setw(10)<<sch[i].female<<endl; }
fout.close();
}
void malezf() //按学校男总分排序
{
int i,j;
school t;
for(i=1;i<n;i++)
{
for(j=i;j<=n;j++)
if(sch[i].male<sch[j].male)
{t=sch[i];sch[i]=sch[j];sch[j]=t;}
}
printf("\n按学校男子总分排列:\n");
printf("编号 学校名称 总分 男子总分 女子总分\n");
for(i=1;i<=n;i++)
print(i);
}
void femalezf() //按学校女总分排序
{
int i,j;
school t;
for(i=1;i<n;i++)
{
for(j=i;j<=n;j++)
if(sch[i].female<sch[j].female)
{t=sch[i];sch[i]=sch[j];sch[j]=t;}
}
printf("\n按学校女子总分排列:\n");
printf("编号 学校名称 总分 男子总分 女子总分\n");
for(i=1;i<=n;i++)
print(i);
cout<<endl;
}
void cxsch() //查询学校信息
{
int i,y,s;
printf("输入需要查询的学校编号:");
y=0;
while(1)
{
scanf("%d",&s);
if(s>=1&&s<=n)y=1;
if(y)break;
else printf("输入数据有误,请重新输入:");
}
printf("该学校相关信息:\n");
printf("编号 学校名称 总分 男子总分 女子总分\n");
for(i=1;i<=n;i++)
{
if(sch[i].num==s)
{
print(i);
break;
}
}
cout<<endl;
}
void cxxm() //查询项目信息
{
int i,y,s;
printf("输入需要查询的项目编号:");
y=0;
while(1)
{
scanf("%d",&s);
if(s>=1&&s<=n)y=1;
if(y)break;
else printf("输入数据有误,请重新输入:");
}
cout<<p[s].name<<"前5名学校编号及名称为:"<<endl;
printf("名次 编号 学校名称\n");
for(i=1;i<=5;i++)
cout<<" "<<i<<" "<<p[s].snum[i]<<setw(12)<<sch[ p[s].snum[i] ].name<<endl;
cout<<endl;
}

void solve() //菜单函数
{
int z;
while(1)
{
printf("\n选择您需要的操作(选择序号):\n");
printf("1.按学校编号排序输出\n");
printf("2.按学校总分排序输出\n");
printf("3.按学校男总分排序输出\n");
printf("4.按学校女总分排序输出\n");
printf("5.查询某个学校成绩\n");
printf("6.查询某个项目成绩\n");
printf("7.结束\n\n");
scanf("%d",&z);
if(z==1)bianhao();
if(z==2)zongfen();
if(z==3)malezf();
if(z==4)femalezf();
if(z==5)cxsch();
if(z==6)cxxm();
if(z==7)break;
}
}
int main() //主函数
{
input();
solve();
return 0;
}

㈧ C语言输入5个学生的学号名字5门成绩算出总分,按总分进行排序

定义学生结构体数组
#define N 3
struct student{
int num;
char name[10];
int score[3];
int sum;
}stu[N];
这样

for(i=0;i<N;i++)
{
根据stu[i].sum的大小输出数组stu[i]就实现数组排序了
...
}

㈨ c语言编程有一个班共40人本学期有5门课程要求1输入每人的成绩2计算每人的总分3输出总分最高的学生成绩

#include<stdio.h> main() { float a1[200],a2[40]; int i,j,sum; printf("input everystudent fiveobject grade"); for(i=0;i<200;i=i+5) { sum=a1[i]+a1[i+1]+a[i+2]+a[i+3]+a[i+4]; for(j=0;j<40;j++) a[j]=sum; } for(j=0;j<39;j++) for(i=;i<39-j;i++) 下

㈩ C语言如何把已经录入的学生各科成绩的总成绩计算出并调用去排序

要看你数据类型,用冒泡排序思路循环比较总分,交换对应各科成绩:
一、比如,一个学生的各科成绩用数组保存,那么,n个学生就是二维数组。总分再定义一个一维数组用行下标将两者对应。冒泡排序时比较总分,需交换时,两个数组分别同时交换(行下标一样)。
二、这种多属性表示一个对象,定义成结构体更好,各科成绩和总分都定义成学生结构体的成员变量,还可根据需求增加姓名年龄等属性。n个学生就是结构数组,排序的时候要用总分这个成员变量来比较,交换直接用结构变量相交换。
三、对第二点升级做法,当学生人数很多且经常增删,且人数不定,那么把结构数组改成结构链表就更方便。排序时,保留结构指针的值,交换其余成员变量。