生活随笔
收集整理的這篇文章主要介紹了
【学校作业】学生数据打印
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數據結構課程布置了一門c語言的結構體作業
要求:
五個學生,數據包括學號,姓名,3門課的成績,從鍵盤輸入5個學生的數據。打印出3門課總平均成績,以及最高分
強迫癥患者表示打印出的數據必須美觀,
必須有表格的形式,牌面還是要有的
所以有
下面貼出代碼:
#include "stdio.h"
#include <stdlib.h>
#define SIZE 5 struct student
{char id
[20];char name
[20];int score
[3];
} stud
[SIZE
];
float ave
[SIZE
];void input()
{int i
;for(i
=0;i
<SIZE
;i
++){ printf("第%d個學生的信息:(鍵入回車鍵表示一個信息的結束)\n",i
+1);printf("請輸入第%d個學生的學號:",i
+1);scanf("%s",&stud
[i
].id
); printf("請輸入第%d個學生的姓名:",i
+1);scanf("%s",&stud
[i
].name
); printf("請輸入第%d個學生的語文成績:",i
+1);scanf("%d",&stud
[i
].score
[0]); printf("請輸入第%d個學生的數學成績:",i
+1);scanf("%d",&stud
[i
].score
[1]); printf("請輸入第%d個學生的英語成績:",i
+1);scanf("%d",&stud
[i
].score
[2]);
}
}void average()
{int i
;for(i
=0;i
<SIZE
;i
++){ ave
[i
]=(stud
[i
].score
[0]+stud
[i
].score
[1]+stud
[i
].score
[2])/3.0;}
}void max()
{
int i
,j
;
float ftemp
;struct student temp
;for(i
=0;i
<SIZE
;i
++){for(j
=0;j
<SIZE
-i
-1;j
++){if(ave
[j
]<ave
[j
+1]){temp
=stud
[j
];stud
[j
]=stud
[j
+1];stud
[j
+1]=temp
;ftemp
=ave
[j
];ave
[j
]=ave
[j
+1];ave
[j
+1]=ftemp
;}} }printf("\n最高分學生的數據:\n"); printf("%4s %10s %8d %8d %8d %8.1f\n",stud
[0].id
,stud
[0].name
,stud
[0].score
[0],stud
[0].score
[1],stud
[0].score
[2],ave
[0]);
}void output()
{int i
;printf("\n");printf("%5s %10s %8s %8s %8s %8s\n","學號","姓名","語文","數學","英語","平均分");for(i
=0;i
<SIZE
;i
++)printf("%4s %10s %8d %8d %8d %8.1f\n",stud
[i
].id
,stud
[i
].name
,stud
[i
].score
[0],stud
[i
].score
[1],stud
[i
].score
[2],ave
[i
]);
}void main()
{input();average();output();max();
}
讓我郁悶的是自己的dev c++可以運行
學校里的vc6+報了兩個錯,什么float定義變量錯誤
兩個編譯器不一樣啊,回頭再看看啦。。。。
總結
以上是生活随笔為你收集整理的【学校作业】学生数据打印的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。