當前位置:首頁 » 編程語言 » 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個學生就是結構數組,排序的時候要用總分這個成員變數來比較,交換直接用結構變數相交換。
三、對第二點升級做法,當學生人數很多且經常增刪,且人數不定,那麼把結構數組改成結構鏈表就更方便。排序時,保留結構指針的值,交換其餘成員變數。