题目来源:大工慕课 链接
作者:Caleb Sung
题目要求
假设有四名学生,每名学生有三门科目的成绩。从键盘读入数据(包括学号、姓名和三门考试成绩),计算出平均成绩,将原有数据和计算出的平均成绩存放在磁盘文件stu.dat
中。
Tips
- 代码中
fp = fopen("stu.dat", "w");
这行代码值打开打开stu.dat
文件并挂载为写入,这个文件不必自行单独创建,编译器会在程序运行时自动创建。 - 在文件中写入时我使用了格式控制符
\t
而不是空格来分隔数据,这样既美观又科学,日后大家写代码的时候也要注意这一点。
参考代码
#include "stdio.h"
void main(){
int i;
char id[18], name[16];
double score[3], aver;
FILE *fp;
fp = fopen("stu.dat", "w");
printf("Input information:\n\n");
for(i=0; i<4; i++){
printf("Student%d\'s ID:\t", i+1);
scanf("%s", &id);
printf("Student%d\'s name:\t", i+1);
scanf("%s", name);
printf("Student%d\'s score1:\t", i+1);
scanf("%lf", &score[0]);
printf("Student%d\'s score2:\t", i+1);
scanf("%lf", &score[1]);
printf("Student%d\'s score3:\t", i+1);
scanf("%lf", &score[2]);
aver = (score[0] + score[1] + score[2]) / 3;
fprintf(fp,"%s\t%s\t%lf\t%lf\t%lf\t%lf\n", id, name, score[0], score[1], score[2], aver);
printf("\n\n");
}
fclose(fp);
}