当前位置: 首页 > article >正文

【C语言】结构体应用:统计成绩最低分

目的:N个学生成绩已知,统计获得最低分的人数个数,以及基本个人信息。

#include <stdio.h>
#include<string.h>
/*	功能:结构体的应用 按成绩信息排名 
	时间:2024年10月 
	地点:贤者楼129 
	作者:LChen
*/
/*	N名学生成绩及个人信息放在stua中 
	将分数最低的学生数据放在stb所指的数组中 
	
	方法一:所有学生按成绩排序,找到最低成绩的学生个数
		参考上一个程序 
			时间复杂度:排序复杂度最低NlogN 
			空间复杂度:交换的1 
	方法二:记录当前最低分,并存储学生 
			时间复杂度:遍历学生N
			空间复杂度:最低成绩的学生人数,最高N 
*/ 

struct student{
	int ID;				// 学号 
	char name[20];		// 姓名  
	double score;		// 成绩 
};
typedef struct student Student; 

int main() {
	
	int i,j,n;
	scanf("%d",&n);
	Student stua[n];			// 定义 
	Student stub[n];			// 极端情况,所有人分数相同 
	
	int count=0;				// 记录最低分人数,初始下标为0
	double minScore=101; 		// 初始化最低分为极大值 
	
	for(i=0;i<n;i++)
		scanf("%d %s %lf",&stua[i].ID,stua[i].name,&stua[i].score);
	
	for(i=0;i<n;i++){
		if(stua[i].score<minScore){	 
			count=0; 						// 重新计数 
			stub[count]=stua[i];
			minScore=stua[i].score;			// 更新最低分
		}
		else if(stua[i].score==minScore){	// 是最低分
			count++;
			stub[count]=stua[i];			// 累加 
		}
	}
	
	// 输出最低成绩人数
	printf("共%d个最低分\n",count+1);		// 下标从0开始 
	for(i=0;i<=count;i++)
		printf("%d %s %.2lf\n",stub[i].ID,stub[i].name,stub[i].score);
	
	return 0;
}

在这里插入图片描述


http://www.kler.cn/a/353846.html

相关文章:

  • VSCode Live Server 插件安装和使用
  • 每日一题-两个链表的第一个公共结点
  • spring mvc源码学习笔记之九
  • 【微服务】SpringBoot 国际化适配方案使用详解
  • PostgreSQL学习笔记(二):PostgreSQL基本操作
  • flutter 专题二十四 Flutter性能优化在携程酒店的实践
  • Linux MISC 驱动实验
  • Vue检测获取最新资源 解决浏览器缓存问题
  • CloseableHttpResponse 类(代表一个可关闭的 HTTP 响应)
  • 现在做一个产品级别的物联网智能应用,能链接wifi可以和chatgpt交互,做到实时语音交互的能力
  • Docker 的使用-01
  • 9.存储过程安全性博客大纲(9/10)
  • 双指针 — 复写零
  • tensorflow入门案例手写数字识别人工智能界的helloworld项目落地1
  • Spring 依赖注入(Dependency Injection)
  • Chrome(谷歌)浏览器 数据JSON格式美化 2024显示插件安装和使用
  • 3.3 Thymeleaf语法
  • 深入理解Qt中的QTableView、Model与Delegate机制
  • C++——vector的了解与使用
  • 易我数据恢复软件怎么样?2024四大数据恢复工具推荐!
  • 知识图谱融入向量数据库,带来RAG效果飞升
  • Java重修笔记 InetAddress 类和 Socket 类
  • 数据结构——排序(归并排序)
  • 给定任意非空有向图 G,输出 G 中所有 K 顶点的算法,并返回 K 顶点的个数。
  • 通过API进行Milvus实例配置
  • Android摄像头Camera2和Camera1的一些总结