#$%&@~* 2021-06-08 19:23 采纳率: 100%
浏览 999
已采纳

c语言读出一个文档信息,输入其他信息,存入另一个文档

1、文件“stu_info1.txt”包含学生的基本信息(姓名、学号、籍贯三项),现在需
要从该文件中读出信息,并依次为每位学生输入三门课程成绩,计算平均成绩,再将学生
完整信息(姓名、学号、籍贯、课程1、课程2、课程3、平均分)
写入文件“stu_info2.txt”
并保存于磁盘上。

  • 写回答

3条回答 默认 最新

  • qfl_sdu 2021-06-08 19:25
    关注

    stu_info1.txt文件的格式是什么样的?

    代码如下,如有帮助,帮忙采纳一下,谢谢。

    #include <stdio.h>
    #define MAXNMB 200
    struct Student
    {
    	char name[20]; //姓名
    	int id;        //学号
    	char jg[100];  //籍贯
    	float score[3];//成绩
    	float avg;     //平均成绩
    };
    
    int main()
    {
    	FILE* fp;
    	char buf[200] ={0};
    	Student st[MAXNMB];
    	int i,nmb = 0; //实际人数
    	if (!(fp = fopen("stu_info1.txt","r")))
    	{
    		printf("文件打开失败\n");
    		return 0;
    	}
    	while(!feof(fp))
    	{
    		fscanf(fp,"%s\t%d\t%s",st[nmb].name,&st[nmb].id,st[nmb].jg);
    		nmb++;
    	}
    	fclose(fp);
    	
    	if (!(fp = fopen("stu_info2.txt","w")))
    	{
    		printf("文件打开失败\n");
    		return 0;
    	}
    	//录入成绩
    	printf("请为每位学生输入3门课程的成绩\n");
    	for (i = 0;i < nmb;i++)
    	{
    		printf("%s的成绩:",st[i].name);
    		scanf("%f %f %f",&st[i].score[0],&st[i].score[1],&st[i].score[2]);
    		st[i].avg = (st[i].score[0]+st[i].score[1]+st[i].score[2])/3;
    		fprintf(fp,"%s\t%d\t%s\t%f\t%f\t%f\t%f\n",st[i].name,st[i].id,st[i].jg,st[i].score[0],st[i].score[1],st[i].score[2],st[i].avg);
    	}
    	fclose(fp);
    	return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面