當前位置:成語大全網 - 成語故事 - 用C語言寫壹個程序,完成以下功能:(1)有5個學生,每個學生的數據包括學號,姓名,3門課的成績。

用C語言寫壹個程序,完成以下功能:(1)有5個學生,每個學生的數據包括學號,姓名,3門課的成績。

# include & ltstdio.h & gt

#定義學生2

typedef結構標記圖

{

char name[11];

char stunum[11];

浮點score1,score2,score3

浮動總數,aver

}斯圖;

Void input(STU *stu,int num) //stu是學生數組的第壹個地址,num是數組長度。

{

int I;

Printf("請輸入%d名學生的基本信息:\n ",num);

Printf("姓名和學號,壹年級,二年級,三年級\ n ");

for(I = 0;我& ltnumi++)

{

scanf("%s%s%f%f%f ",& amp斯圖[我]。姓名& amp斯圖[我]。stunum & amp;stu[i].score1,

& amp斯圖[我]。得分2,與。stu[I]. score 3);

}

}

float verage(stu * stu,int num)//stu是學生數組的第壹個地址,num是數組的長度,返回總平均分。

{

int I;

浮點aver total = 0;

for(I = 0;我& ltnumi++)

{

斯圖[我]。總計= 0;

斯圖[我]。total = stu[I]. score 1+stu[I]. score 2+stu[I]. score 3;

斯圖[我]。aver = stu[i]。總數/3;

avertotal += stu[i]。aver

}

返回aver total/num;

}

Voidmax (stu * stu,intnum,stu * sturev,int * sturevnum)//stu是學生數組的第壹個地址,num是數組長度。

//stuRev表示要接收的數組,stuRevNum表示最終接收的學生數,即分數最高的學生數(可能不止壹個)。

{

STU temp[5];

float max total = 0;

int i,temp _ index = 0;

for(I = 0;我& ltnumi++)

{

如果(斯圖[我]。總計& gtmaxtotal)

{

maxtotal = stu[i]。總計;

temp[0]= stu[I];

temp _ index = 0;

}

else if(stu[i]。total==maxtotal)

{

temp[++ temp _ index]= stu[I];

}

}

for(I = 0;我& lt= temp _索引;i++)

{

stur ev[I]= temp[I];

}

* stuRevNum = temp _ index+1;

}

void main()

{

STU STU[學生];

STU STU max[學生];

int stumax_num,I;

平均浮動總量;

輸入(stu,學生);

avertotal = average(stu,學生);

最大值(學生,學生,最大值,& ampstu max _ num);

//輸出結果

printf(" 3門課程的平均成績:%4.2f\n ",aver total);

Printf("有%d個最高分的學生:\n ",stumax _ num);

Printf("姓名和學號,壹年級,二年級,三年級\ n ");

for(I = 0;我& ltstumax _ numi++)

{

printf(" % 4s % 4s %-4.2f %-4.2f \ n ",stumax[i].名字,stumax[i]。斯圖納姆,

stumax[i].score1,stumax[i].score2,stu max[I]. score 3);

}

}