面试题一道
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 ;
}
