时间限制 内存限制
1.00s 125.00MB
题目描述
给出 n 和 n 个整数 ,求这 n 个整数中的极差是什么。
极差的意思是一组数中的最大值减去最小值的差。
输入格式
第一行输入一个正整数 n,表示整数个数。
第二行输入 n 个整数 ,
…
,以空格隔开。
输出格式
输出一个整数,表示这 n 个整数的极差。
输入输出样例
输入 #1 输出 #1
6 4
1 1 4 5 1 4
说明/提示
数据保证,1 ≤ n ≤ 100,0 ≤ ≤ 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.
钦此。