有五个学生,每个学生有3门课程的成绩,从键盘输入学生数据(包括学号、姓名、3门课程成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件stud中。

该C程序接收5个学生每人的3门课程成绩,计算平均分,并将原始数据及平均分保存到磁盘文件stud.txt。之后程序能从文件读取这些信息并显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有五个学生,每个学生有3门课程的成绩,从键盘输入学生数据(包括学号、姓名、3门课程成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件stud中。

#include <stdio.h>
#include <string.h>
#define N 5
struct Student{
	int num;
	char name[20];
	float score[3];
	float aver;
}stud[N],stud_1[N];

int main()
{
	FILE *fp;
	int i,j;
	float sum; 
	if((fp=fopen("stud.txt","wb"))==NULL)
		{printf("cannot open stud!\n");
		 exit(0);
		}
	for(i=0;i<N;i++)
		{printf("请输入第%d个学生信息(学号、姓名、3门成绩):\n",i+1);
		 scanf("%d %s %f %f %f",&stud[i].num,stud[i].name,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);
		}
	for(i=0;i<N;i++)

		{
			sum=0;
			for(j=0;j<3;j++)
				sum=sum+stud[i].score[j];
			stud[i].aver=sum/3;
		}
	for(i=0;i<N;i++)
		if(fwrite(&stud[i],sizeof(struct Student),1,fp)!=1)
			printf("stud write error!\n");
	fclose(fp);
	
	fp=fopen("stud.txt","rb");
	if(fp==NULL)
		{printf("cannot open stud!\n");
		 exit(0);
		}
	printf("从stud.txt文件中读取到的信息如下:\n");
	printf("\t   学号\t姓名\t3门成绩\t\t\t平均成绩\n");
	for(i=0;i<N;i++)
		{printf("第%d个学生:",i+1);
		 fread(&stud_1[i],sizeof(struct Student),1,fp);
		 printf("%d\t%s\t%.2f %.2f %.2f\t%.2f\n",stud[i].num,stud[i].name,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].aver);
		}
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值