首页 > 编程语言 >程序A将五个学生的信息(姓名、性别、分数)存入文件Stu_data中 程序B从文件中读取并排序 按成绩由高到低输出

程序A将五个学生的信息(姓名、性别、分数)存入文件Stu_data中 程序B从文件中读取并排序 按成绩由高到低输出

时间:2024-06-24 13:31:47浏览次数:32  
标签:fp score int 程序 stu 由高到 NUM sizeof data

 首先打开文件并存入信息;

#include <stdio.h>
#define NUM 5
typedef struct student{
	char name[100];
	char sex;
	float score;
}stu;

int main(){
	FILE *fp = NULL;
	if((NULL == (fp = fopen("stu_data", "w")))){
		perror("fopen");return -1;
	}

	stu s[NUM];			//结构体数组

	printf("请输入成员的信息( 姓名 性别 分数 ) > \n");
	for(int i = 0; i < NUM; i++){
		scanf("%s %c %f", s[i].name, &s[i].sex, &s[i].score);
		getchar();//清空垃圾字符;
	}

	fwrite(s, sizeof(stu), sizeof(s)/sizeof(stu), fp);
	
	for(int i = 0; i < NUM; i++){
		printf("%s %c %.2f\n", s[i].name, s[i].sex, s[i].score);
			
	}

	fclose(fp);
	return 0;
	
}

读取数据并做排序;

#include <stdio.h>
#define NUM 5
typedef struct student{
	char name[100];
	char sex;
	float score;
}stu;

int main(){
	FILE *fp = NULL;
	if((NULL == (fp = fopen("stu_data", "r")))){
		perror("fopen");return -1;
	}

	stu s[NUM];			//结构体数组

	//从文件中读取数据
	fread(s, sizeof(stu), sizeof(s)/sizeof(stu), fp);
	stu temp;
	
	for(int i = 0; i < NUM; i++){
		for(int j = 0; j < NUM-1; j++){
			//两种方法都可以
#if 0
//			if(s[j].score < s[i].score){
//				temp = s[i];
//				s[i] = s[j];
//				s[j] = temp;
//			}
#endif

#if 1
			if(s[j].score < s[j+1].score)
			{
			   temp	   =  s[j];
			   s[j]  = s[j+1];
			   s[j+1]= temp ;
			}
#endif
		}
	}
	
	for(int i = 0; i < NUM; i++){
		printf("%s %c %.2f\n", s[i].name, s[i].sex, s[i].score);
	}

	fclose(fp);
	return 0;
}

标签:fp,score,int,程序,stu,由高到,NUM,sizeof,data
From: https://blog.csdn.net/Z102704/article/details/139921173

相关文章

  • Javascript高级程序设计(第四版)--学习记录之基本引用类型
    DateDate类型将日期保存为自协调世界时间1970年1月1日午夜至今所经过的毫秒数。创建日期对象letnow=newDate()Date.parse()方法接收一个表示日期的字符串参数,尝试将这个字符串转换为表示该日期的毫秒数。lettime=newDate(Date.parse("May24,2024"));Date.now()......
  • 七、若依--P17--P18【黑马程序员Java最新AI+若依框架项目开发新方案视频教程,基于RuoYi
    学习视频【黑马程序员Java最新AI+若依框架项目开发新方案视频教程,基于RuoYi-Vue3前后端分离版本,从前端到后端再到AI智能化应用全通关】https://www.bilibili.com/video/BV1pf421B71v/?p=6&share_source=copy_web&vd_source=3949d51b57b2891ea14d6e51c792bef6二次开发P17:新......
  • SSM-学情分析系统-56772(免费领源码+开发文档)可做计算机毕业设计JAVA、PHP、爬虫、APP
    学情分析系统摘 要随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于学情分析系统当然也不能排除在外,随着网络技术的不断成熟,带动了学情分析系统,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还提升了管理的灵活性。这......
  • 基于SpringBoot的高校大学生学科竞赛管理系统+53135(免费领源码)可做计算机毕业设计JAVA
    springboot高校大学生学科竞赛管理系统的设计与实现摘 要随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设高校大学生学科竞赛管理系统。......
  • 为什么程序不能一次写好?
    这个标题也可以为:程序员写的程序,为什么非得有bug?何为程序员?首先,程序员的定位是工程师,即:程序员不是码字的人,或者说不只是码字的人。需要站在工程维度上,需要站在相对高的高度上,去俯瞰工程。何为程序?那么,什么是程序?即:算法+数据结构。算法用来求解(花式求解),数据结构即......
  • 程序员系统入门大模型的路径和资源,看这篇就够了
    本篇文章面向对大模型领域感兴趣,又不知如何下嘴的程序员。看一下围绕大模型的应用场景和人才需求:**Prompt工程:**基于提示词对大模型的使用,会问问题就行。**基于大模型的应用(狭义的):**通过预设一些Prompt的方式做业务层应用,俗称大模型套壳。AI主播、AINPC、AI小助手。。。......
  • 适用于 Android 的 几种短信恢复应用程序
    Android设备上的短信丢失可能由于多种原因而丢失,例如意外删除、恢复出厂设置、系统崩溃或病毒攻击。是否有应用程序可以恢复Android上已删除的短信?幸运的是,有几款短信恢复应用程序可以扫描您的Android手机并从内存或SIM卡中检索已删除的短信。然而,并非所有短信恢复应用......
  • C30 基础应用界面和应用程序(Part 6)
    本节导读演示如何使用JavaScript和Python设计和发布地球引擎应用程序。介绍地球引擎用户界面JavaScriptAPI和geemapPython包。在完成本节后,你将能够发布一个带有拆分面板地图的地球引擎应用程序,用于可视化土地覆盖变化。主要内容:使用JavaScript为地球引擎应用程序设计一个用......
  • 'MMDetection3D'+'waymo-open-dataset-tf-2-6-0'+'pytorc2.3.1+cu121'安装
    安装pytorc2.3.1+cu121步骤1.创建并激活一个conda环境condacreate-nmmdpython=3.8-ycondaactivatemmd步骤2.基于PyTorch官方说明安装PyTorch,例如:pip3installtorchtorchvisiontorchaudio--index-urlhttps://download.pytorch.org/whl/cu121步骤3.验......
  • 华为HCIP Datacom H12-821 卷11
    1.多选题OSPF包括哪些报文类型?A、LinkStateDDB、HelloC、LinkStateRequestD、DatabaseDescription正确答案: B,C,D解析:在OSPF协议中,报文类型分为:hello、DD、LSR、LSU、LSAck。所以正确答案是“Hello”、“DatabaseDescription”、“LinkStateRequest”......