1. 程式人生 > 其它 >c語言 結構體(二)-上課用

c語言 結構體(二)-上課用

源程式:

//編寫一個函式print,輸出學生的資訊,該陣列有5個學生的記錄,包括:
//num, sname, score[3],用主函式輸入這些記錄,用print函式輸出這些記錄。

#include <stdio.h>
#define N 5 //預定義,N代表5個學生

struct student
{
int num;
char sname[20];
int score[3];
int sum;
}stu[N]; //定義學生的陣列,

//作者:李梓遠
//時間:2022-4-21
//功能:輸入資訊
//技術:雙重迴圈,陣列的巢狀
//變數:結構體變數stud[]
void input(struct student stud[])
{
int i;
for(i=0;i<N;i++)
{
printf("\n第%d個學生的資訊:\n",i+1);
printf("學號:");
scanf("%d",&stud[i].num);
printf("姓名:");
scanf("%s",stud[i].sname);
printf("語文:");
scanf("%d",&stud[i].score[0]);
printf("數學:");
scanf("%d",&stud[i].score[1]);
printf("英語:");
scanf("%d",&stud[i].score[2]);

stud[i].sum+=stud[i].score[0]+stud[i].score[1]+stud[i].score[2];

printf("\n");
}
}

//作者:鍾麗琪
//時間:2022-4-21
//功能:按總分排序
//技術:氣泡排序
//變數:結構體變數stud[]
void sort(struct student stud[],int n)
{
int i,j;
struct student temp;
for(i=0;i<n;i++)
{
for(j=0;j<n-i-1;j++)
{
if(stud[j].sum>stud[j+1].sum)
{
temp=stud[j];
stud[j]=stud[j+1];
stud[j+1]=temp;
}
}
}
}

 

//作者:吳澤林
//時間:2022-4-21
//功能:輸出資訊
//技術:
//變數:結構體變數stud[]
void print(struct student stu[])
{
int i;
printf("\n 學號 姓名 語文 數學 英語 總分\n");
printf("----------------------------------------------------\n");
for(i=0;i<N;i++)
{
printf("%5d%10s%8d%8d%8d%8d",
stu[i].num,
stu[i].sname,
stu[i].score[0],
stu[i].score[1],
stu[i].score[2],
stu[i].sum);
printf("\n");
}
}

//主函式
void main()
{
input(stu); //呼叫輸入函式, 李梓遠
sort(stu,N); //按總成績排序, 鍾麗琪
print(stu); //呼叫輸出函式, 吳澤林
}

 執行結果 :