编程有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学号,姓名,三门课成绩),计算出总成绩,将原有的数据和计算出的总分数存放在磁盘文件stu.txt中。 提示:首先以写方式打开文件stu.txt,由于学生人数已知,所以用for循环,对每个学生的信息从键盘输入,然后用fprintf()函数写入文件,最后关闭文件。 源代码:
时间: 2024-01-03 14:04:11 浏览: 129
下面是实现上述功能的C程序:
```c
#include <stdio.h>
int main()
{
FILE *fp;
int i, j, sum, id;
char name[20];
float score[3];
// 以写方式打开文件stu.txt
fp = fopen("stu.txt", "w");
if (fp == NULL)
{
printf("Can't open file!\n");
return 0;
}
// 输入5个学生的信息
for (i = 0; i < 5; i++)
{
printf("Please input student %d's id, name, and scores:\n", i + 1);
scanf("%d %s %f %f %f", &id, name, &score[0], &score[1], &score[2]);
// 计算总成绩
sum = 0;
for (j = 0; j < 3; j++)
{
sum += score[j];
}
// 将学生信息和总成绩写入文件
fprintf(fp, "%d %s %.1f %.1f %.1f %d\n", id, name, score[0], score[1], score[2], sum);
}
// 关闭文件
fclose(fp);
return 0;
}
```
该程序首先以写方式打开文件stu.txt,如果文件打开失败,则输出"Can't open file!"并退出程序。
然后,程序使用for循环输入5个学生的信息。对于每个学生,程序从键盘输入学号、姓名和三门课的成绩,并计算出总成绩。最后,程序使用fprintf()函数将学生信息和总成绩写入文件stu.txt中。
最后,程序关闭文件stu.txt。
注意,上述程序假设输入的学号为整数,姓名不超过20个字符,每门课成绩为一个小数。如果输入的格式不符合要求,程序可能会出现错误。同时,该程序没有进行输入数据的合法性检查,也没有对输出结果进行格式化,因此可能需要根据实际情况进行修改。
阅读全文