面试题一道
5个同学,每个同学有学号、姓名、三科成绩、要求实现从终端输入同学的基本信息,计算平均成绩、一并把这些放在一个磁盘文件中。
呵呵 说简单了就是从PC端输入 然后写到.txt文件中
这些很简单 都是基础 一般都应该做过
# include <stdio.h> # include <stdlib.h> # include <string.h> typedef struct { char id[10] ; char name[5] ; double grades[3] ; }Student ; int main() { Student student[5] ; int i ; double avgrade ; char outputstr[100] ; FILE *fp ; if((fp = fopen("student.txt" , "w")) == NULL)//建立一个student.txt文件,然后以"文本"写的形式打开 { fprintf(stdout , "open file is error\n") ; exit(EXIT_FAILURE) ; } for(i = 0 ; i < 5 ; i++) { scanf("%s%s%lf%lf%lf" , student[i].id , student[i].name , \ &student[i].grades[0] , &student[i].grades[1] , &student[i].grades[2]) ; avgrade = (student[i].grades[0] + student[i].grades[1] + student[i].grades[2]) / 3 ;//计算学生的平均成绩 sprintf(outputstr , "%s %s %.2lf\n" , student[i].id , student[i].name , avgrade) ;//将学生的学号,姓名,和平均成绩存储在一个字符数组中 fwrite(outputstr , strlen(outputstr) , 1 , fp) ;//将字符串写入到文件中,这样就可以看见文件中的内容了 fflush(stdin) ;//刷新一下键盘流中多余的换行符 } fclose(fp) ; return 0 ; }