c语言用四种方式求解成绩之中最高分和最低分的差值

news2024/10/4 20:00:31

文章目录

  • 一,题目
  • 二,方法
    • 1,方法一
    • 2,方法二
    • 3,方法三
    • 4,方法四
  • 三,示例结果

一,题目

最高分最低分之差
输入n个成绩,换行输出n个成绩中最高分数和最低分数的差

输入 :
两行:
第一行为n,表示n个成绩,不会大于一千;
第二行为n个成绩(整数表示,范围为0~100,以空格隔开)

输出:
一行,输出n个成绩中的最高分数和最低分数的差


二,方法

1,方法一

方法一,比较费劲,在这里小编用之前讲的冒泡排序将数组中的数重新排序一遍,然后最大的减去最小的得到最高分和最低分的差值;冒牌排序算法详情请看小编所写利用冒泡排序算法解决十个乱序数字排成升序数字,接下来上代码

void bubble_sort(int arr[100],int n)
{
	int i = 0;
	for (i = 0; i < n-1; i++)
	{
		//一趟冒泡排序
		int j = 0;
		for (j = 0; j < n - 1 - i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				int temp = 0;
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
}
int main()
{
	int arr[100] = { 0 };
	int i = 0;
	int n = 0;
	scanf("%d",&n);
	for (i = 0; i < n; i++)
	{
		scanf("%d",&arr[i]);
	}
	bubble_sort(arr,n);
	int cha = arr[n - 1] - arr[0];
	printf("%d",cha);
	return 0;
}
分析

在这里小编先用一个冒泡函数将函数从小到大排序一遍,于是最大的值就是数组下标为n-1的数,最小的值就是数组下标为0的数,将两个值进行相减得到差值。

2,方法二

方法二是传统方法,先设数组中的第一个数为最大值,然后遍历一遍数组中的数跟第一个数比较,如果都小于,则第一个数最大,如果比第一个数大,此时大的值为最大的。相同方法求出最小值。代码如下:

int main()
{
	int n = 0;
	scanf("%d",&n);
	int arr[50] = { 0 };
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d",&arr[i]);
	}
	//求最大值
	int max = arr[0];
	for (i = 1; i < n; i++)
	{
		if (arr[i] > max) 
			max = arr[i]; 
	}
	//求最小值 
	int min = arr[0]; 
	for (i = 1; i < n; i++) 
	{
		if (arr[i] < min) 
			min = arr[i]; 
	}
	printf("%d",max-min); 
	return 0; 
}

3,方法三

方法三是建立在方法三的基础之上的,我们看到方法二中的代码求最大值和最小值分别用了两次遍历,加长了代码的长度和重复性,所以在这里我们可以简化一下,在求最大值的时候同时也在求最小值,这样就只需要遍历一遍就可以同时得到最大值和最小值了,代码如下。

int main()
{
	int n = 0;
	scanf("%d", &n);
	int arr[50] = { 0 };
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	//求最大值和最小值
	int max = arr[0];
	int min = arr[0];
	for (i = 1; i < n; i++)
	{
		if (arr[i] > max)
			max = arr[i];
		if (arr[i] < min)
			min = arr[i];
	}
	printf("%d", max - min);
	return 0;
}

4,方法四

方法四又是建立在方法三之上的,在方法三的基础上我们发现我们是在所有数全部输入之后才进行遍历找出最大值,此时我们思考一下是不是可以在输入的时候就可以便输入便求出最大值呢,首先在题目中我们规定了最大不能超过100,最小不能低于0,所以在这里我们可以现设最小值就是100,然后在输入中,如果小于100的话,那么此时那个值就是最小值,如果后面还有更小的,又可以将它赋值给最小值,同理设最大值为0,可以同时在输入的时候求出最大值。接下来上代码。

nt main()
{
	int n = 0;
	scanf("%d", &n);
	int arr[50] = { 0 };   
	int i = 0;    
	int min = 100;    
	int max = 0;    
	for (i = 0; i < n; i++)    
	{
		scanf("%d", &arr[i]);    
		if (arr[i] > max)    
			max = arr[i];    
		if (arr[i] < min)    
			min = arr[i];    
	}
	printf("%d", max - min);    
	return 0;    
}


三,示例结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1339607.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用网络教育系统构建个性化学习平台

在现代教育中&#xff0c;网络教育系统作为一种创新的学习方式&#xff0c;为学生提供了更加个性化和灵活的学习体验。在本文中&#xff0c;我们将通过简单的技术代码&#xff0c;演示如何构建一个基础的网络教育系统&#xff0c;为学生提供个性化的学习路径和资源。 1. 环境…

Undo Log 、Binary Log、Redo Log之间到底有什么区别?

Undo Log 、Binary Log、Redo Log各自的作用 先抛结论&#xff1a;他们各自的作用是什么 Undo Log &#xff1a;用于保证数据库事务原子性Binary Log&#xff1a;用于数据库的数据备份/主从复制Redo Log&#xff1a;用于保证数据库事务持久性 接下来详细谈谈它们 Undo Log …

关于Java并发、JVM面试题

前言 之前为了准备面试&#xff0c;收集整理了一些面试题。 本篇文章更新时间2023年12月27日。 最新的内容可以看我的原文&#xff1a;https://www.yuque.com/wfzx/ninzck/cbf0cxkrr6s1kniv 并发 进程与线程的区别 线程属于进程&#xff0c;进程可以拥有多个线程。进程独享…

【项目】玩具租赁博客测试报告

目录 一、项目背景 二、项目功能 三、功能测试 一、项目背景 玩具租赁系统采用前后端分离的方法来实现&#xff0c;同时使用了数据库来存储相关的数据&#xff0c;同时将其部署到云服务器上。前端主要有十五个页面构成&#xff1a;用户注册、管理员注册、登录页、用户和管理…

java浅拷贝BeanUtils.copyProperties引发的RPC异常 | 京东物流技术团队

背景 近期参与了一个攻坚项目&#xff0c;前期因为其他流程原因&#xff0c;测试时间已经耽搁了好几天了&#xff0c;本以为已经解决了卡点&#xff0c;后续流程应该顺顺利利的&#xff0c;没想到 人在地铁上&#xff0c;bug从咚咚来~ 没有任何修改的服务接口&#xff0c;抛出…

IT安全:实时网络安全监控

了解庞大而复杂的网络环境并非易事&#xff0c;它需要持续观察、深入分析&#xff0c;并对任何违规行为做出快速反应。这就是为什么实时网络安全监控工具是任何组织 IT 安全战略的一个重要方面。 网络攻击和合规性法规是 IT 安全的两个主要驱动因素。同时&#xff0c;数据泄露…

Spring Cloud Gateway 常见过滤器的基本使用

目录 1. 过滤器的作用 2. Spring Cloud Gateway 过滤器的类型 2.1 内置过滤器 2.1.1 AddResponseHeader 2.1.2 AddRequestHeader 2.1.3 PrefixPath 2.1.4 RequestRateLimiter 2.1.5 Retry 2.2 自定义过滤器 1. 过滤器的作用 过滤器通常用于拦截、处理或修改数据流和事…

Springboot+vue的医疗报销系统(有报告),Javaee项目,springboot vue前后端分离项目

演示视频&#xff1a; Springbootvue的医疗报销系统&#xff08;有报告&#xff09;&#xff0c;Javaee项目&#xff0c;springboot vue前后端分离项目 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的医疗报销系统&#xff0c;采用M&#xff08;model&a…

百度沧海文件存储CFS推出新一代Namespace架构

随着移动互联网、物联网、AI 计算等技术和市场的迅速发展&#xff0c;数据规模指数级膨胀&#xff0c;对于分布式文件系统作为大规模数据场景的存储底座提出了更高的要求。已有分布式文件系统解决方案存在着短板&#xff0c;只能适应有限的场景&#xff1a; >> 新型分布式…

【产品经理】axure中继器的使用——表格增删改查分页实现

笔记为个人总结笔记&#xff0c;若有错误欢迎指出哟~ axure中继器的使用——表格增删改查分页实现 中继器介绍总体视图视频预览功能1.表头设计2.中继器3.添加功能实现4.删除功能实现5.修改功能实现6.查询功能实现7.批量删除 中继器介绍 在 Axure RP9 中&#xff0c;中继器&…

IntelliJ IDEA Apache Dubbo,IDEA 官方插件正式发布!

作者&#xff1a;刘军 最受欢迎的 Java 集成开发环境 IntelliJ IDEA 与开源微服务框架 Apache Dubbo 社区强强合作&#xff0c;给广大微服务开发者带来了福音。与 IntelliJ IDEA 2023.2 版本一起&#xff0c;Jetbrains 官方发布了一款全新插件 - Apache Dubbo in Spring Frame…

matlab列优先与高维矩阵重构

由于matlab在列化a(:)以及reshape(a)等操作中是列优先的&#xff0c;所以要重构出新的高维度矩阵&#xff0c;通常要把reshape和permute结合起来使用。 先到 http://caffe.berkeleyvision.org/ 下载 训练好的model bvlc_reference_caffenet.caffemodel; 更多caffe使用也请参看…

C#编程艺术:Fizzler库助您高效爬取www.twitter.com音频

数据是当今数字时代的核心资源&#xff0c;但是从互联网上抓取数据并不容易。本文将教您如何利用C#编程艺术和Fizzler库高效爬取Twitter上的音频数据&#xff0c;让您轻松获取所需信息。 Twitter简介 Twitter是全球最大的社交媒体平台之一&#xff0c;包含丰富的音频资源。用…

机器学习系列--R语言随机森林进行生存分析(1)

随机森林&#xff08;Breiman 2001a&#xff09;&#xff08;RF&#xff09;是一种非参数统计方法&#xff0c;需要没有关于响应的协变关系的分布假设。RF是一种强大的、非线性的技术&#xff0c;通过拟合一组树来稳定预测精度模型估计。随机生存森林&#xff08;RSF&#xff0…

【Pytorch】学习记录分享8——PyTorch自然语言处理基础-词向量模型Word2Vec

【Pytorch】学习记录分享7——PyTorch自然语言处理基础-词向量模型Word2Vec 1. 词向量模型Word2Vec)1. 如何度量这个单词的&#xff1f;2.词向量是什么样子&#xff1f;3.词向量对应的热力图&#xff1a;4.词向量模型的输入与输出![在这里插入图片描述](https://img-blog.csdni…

solidity案例详解(七)复杂众筹合约

自己原创智能合约&#xff0c;有作业需求可加下面的图片中的裙 1、在 Remix 中&#xff0c;以 Account1 完成“众筹项目”合约的编译和部署。&#xff08;显示合约、函数、状态变量、结构体、事件的命名&#xff09; 2、在 Remix 中&#xff0c;以 Account2 完成“参与众筹”合…

【架构】企业信息安全体系架构详解

企业信息安全体系架构来说,是包含技术、运维、管理3个层面。本文说的安全架构,主要集中讨论偏研发技术层面的安全架构。 安全性是软件研发技术体系,系统架构设计阶段的一个关键DFX能力,与可靠性、可服务性、性能等架构属性并列。由于安全性设计自身的特点,涉及到系统架构…

【ARMv8M Cortex-M33 系列 2.1 -- Cortex-M33 使用 .hex 文件介绍】

文章目录 HEX 文件介绍英特尔十六进制文件格式记录类型hex 示例Cortex-M 系列hex 文件的使用 HEX 文件介绍 .hex 文件通常用于微控制器编程&#xff0c;包括 ARM Cortex-M 系列微控制器。这种文件格式是一种文本记录&#xff0c;用于在编程时传递二进制信息。.hex 文件格式最常…

Python+OpenCV 零基础学习笔记(1):anaconda+vscode+jupyter环境配置

文章目录 前言相关链接环境配置&#xff1a;AnacondaPython配置OpenCVOpencv-contrib:Opencv扩展 Notebook:python代码笔记vscode配置配置AnacondaJupyter文件导出 前言 作为一个C# 上位机&#xff0c;我认为上位机的终点就是机器视觉运动控制。最近学了会Halcon发现机器视觉还…

『Linux升级路』冯诺依曼体系结构与操作系统

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;Linux &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、冯诺依曼体系结构 &#x1f4d2;1.1为什么要有体系结构 &#x1f4d2;1.2…