1.有五個學生,每個學生有 3 門課的成績,從鍵盤輸入以上資料(包括學生 号,姓名,三門課成績),
計算出平均成績,将原有的資料和計算出的平均分數 存放在磁盤檔案"stud"中。
#include<stdio.h>
#include<stdlib.h>
struct student {//定義一個結構體,裡面包含的成員屬性有學号、姓名、成績、平均分
char num[10];
char name[5];
int score[3];
float avg;
} stu[5];
int main() {
int i,j,sum;
FILE *fp;
for(i=0; i<5; i++) {//通過循環輸入每個學生的學号、姓名、成績
printf("請輸入第%d位學生學号:\n",(i+1));
scanf("%s",stu[i].num);
printf("請輸入學生姓名:\n");
scanf("%s",stu[i].name);
sum = 0;
for(j=0; j<3; j++) {
printf("請輸入第%d門科目成績:\n",(j+1));
scanf("%d",&stu[i].score[j]);
sum +=stu[i].score[j];
}
stu[i].avg = sum / 3.0;
}
fp = fopen("E:\\stud.txt","w");
for(i=0; i<5; i++) {//在控制台上顯示結果
printf("姓名:%s 學号:%s:",stu[i].name,stu[i].num);
for(j=0; j<3; j++) {
printf("學科%d成績%d:",(j+1),stu[i].score[j]);
}
printf("平均分%.2f\n",stu[i].avg);
}
for(i=0; i<5; i++) { //将輸入的資料以及平均分寫入檔案
fprintf(fp,"姓名:%s 學号:%s ",stu[i].name,stu[i].num);
for(j=0; j<3; j++) {
fprintf(fp,"學科%d成績:%d ",(j+1),stu[i].score[j]);
}
fprintf(fp,"平均分%.2f\n",stu[i].avg);
fputc('\n',fp);//換行
}
fclose(fp);
}
運作結果如下:
(1)在控制台顯示結果
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SM2QTN5MjZ4ImMmZjMkRDZyYzXxMDNyETM4EzLcdDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)