P5724 【深基4.习5】求极差 / 最大跨度值 (入门题)

文章提供了三种方法来解决寻找一组整数中的极差问题,即找出最大值与最小值的差。方法包括边输入边判断、使用数组和定义函数。每种方法都通过遍历整数,更新最大值和最小值,最后计算差值。代码示例使用C++编写。
摘要由CSDN通过智能技术生成
时间限制            内存限制
1.00s              125.00MB

题目描述

给出 n 和 n 个整数 a_i​,求这 n 个整数中的极差是什么。

极差的意思是一组数中的最大值减去最小值的差。

输入格式

第一行输入一个正整数 n,表示整数个数。

第二行输入 n 个整数 a_1a _ 2 … a_n,以空格隔开。

输出格式

输出一个整数,表示这 n 个整数的极差。

输入输出样例

输入 #1                      输出 #1
6                            4
1 1 4 5 1 4

说明/提示

数据保证,1 ≤ n ≤ 100,0 ≤ a _ i ​≤ 1000。

解题思路:

此题有 3 种解法 !!!

法1 :

边输入,边判断 

输入 n ,通过 for 循环输入 n 个整数, 在输入 n  个整数 ,在输入时判断是否是最大 或 最小整数, 最后输出两数之差即可;

for (int i = 0; i < n; i++)
{
	cin >> number[i];
}
for (int i = 0; i < n; i++)
{
	if (number[i] > maxn)
	{
		maxn = number[i];
	}
	else if (number[i] < minn)
	{
		minn = number[i];
	}
}
	

法2:

运用数组

输入 n ,通过 for 循环输入 n 个整数放入数组 number 内, 再运用 for 循环进行判断是否为最大 或 最小整数, 最后输出两数之差即可;

for (int i = 0; i < n; i++)
{
	cin >> number[i];
}
for (int i = 0; i < n; i++)
{
	if (number[i] > maxn)
	{
		maxn = number[i];
	}
	else if (number[i] < minn)
	{
		minn = number[i];
	}
}

法3:

定义函数

输入 n ,定义两个自定义函数:1) 函数max   2) 函数min, 通过 for 循环输入 n 个整数, 在输入 n  个整数 ,在输入时运用两个函数判断是否是最大 或 最小整数, 最后输出两数之差即可;

int max(int n)
{
	if (n > maxn)
	{
		maxn = n;
	}
}
int min(int n)
{
	if (n < minn)
	{
		minn = n;
	}
}
for (int i = 0; i < n; i++)
{
	cin >> x;
	max(x);
	min(x);
}

Code:

法1:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n, x, maxn = -0x7fffffff, minn = 0x7fffffff;
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> x;
		if (x > maxn)
		{
			maxn = x;
		}
		else if (x < minn)
		{
			minn = x;
		}
	}
	cout << maxn - minn;
	return 0;
}

法2:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n, maxn = -0x7fffffff, minn = 0x7fffffff;
	cin >> n;
	int number[n];
	for (int i = 0; i < n; i++)
	{
		cin >> number[i];
	}
	for (int i = 0; i < n; i++)
	{
		if (number[i] > maxn)
		{
			maxn = number[i];
		}
		else if (number[i] < minn)
		{
			minn = number[i];
		}
	}
	cout << maxn - minn;
	return 0;
}

法3:

#include<bits/stdc++.h>
using namespace std;
int maxn = -0x7fffffff, minn = 0x7fffffff;
int max(int n)
{
	if (n > maxn)
	{
		maxn = n;
	}
}
int min(int n)
{
	if (n < minn)
	{
		minn = n;
	}
}
int main()
{
	int n, x;
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> x;
		max(x);
		min(x);
	}
	cout << maxn - minn;
	return 0;
}


本题出自洛谷题库

【深基4.习5】求极差 / 最大跨度值 - 洛谷https://www.luogu.com.cn/problem/P5724#submit

A surname.

钦此。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值