用C++编写一个程序,求N个任意数的最大值和最小值之差
时间: 2024-02-26 11:57:52 浏览: 38
好的,下面是一个用C++编写的程序,可以求N个任意数的最大值和最小值之差:
```
#include <iostream>
using namespace std;
int main() {
int n;
cout << "请输入数字个数:";
cin >> n;
int max_num = INT_MIN; // 初始化最大值为int型最小值
int min_num = INT_MAX; // 初始化最小值为int型最大值
for (int i = 0; i < n; i++) {
int num;
cout << "请输入第" << i+1 << "个数字:";
cin >> num;
if (num > max_num) {
max_num = num;
}
if (num < min_num) {
min_num = num;
}
}
cout << "最大值和最小值之差为:" << max_num - min_num << endl;
return 0;
}
```
这个程序会先要求输入数字的个数,然后在循环中逐个输入数字,并更新最大值和最小值。循环结束后,输出最大值和最小值之差。注意,为了确保在初始时最大值和最小值能够被更新,我们将它们的初始值分别设置为int型最小值和最大值。
相关问题
用C++编写一个程序完成下列题目,利用函数模板实现三个数取最大值和最小值功能,要求支持 int、float、double。
好的,以下是实现这个功能的 C++ 代码:
```cpp
#include <iostream>
#include <algorithm>
template<typename T>
T getMax(T a, T b, T c) {
return std::max(std::max(a, b), c);
}
template<typename T>
T getMin(T a, T b, T c) {
return std::min(std::min(a, b), c);
}
int main() {
int a = 1, b = 2, c = 3;
float d = 1.1, e = 2.2, f = 3.3;
double g = 1.11, h = 2.22, i = 3.33;
std::cout << "Max of int: " << getMax(a, b, c) << std::endl;
std::cout << "Max of float: " << getMax(d, e, f) << std::endl;
std::cout << "Max of double: " << getMax(g, h, i) << std::endl;
std::cout << "Min of int: " << getMin(a, b, c) << std::endl;
std::cout << "Min of float: " << getMin(d, e, f) << std::endl;
std::cout << "Min of double: " << getMin(g, h, i) << std::endl;
return 0;
}
```
我们定义了两个函数模板:`getMax` 和 `getMin`,用于分别获取三个数中的最大值和最小值。这两个函数模板都接受三个参数,类型为 `T`,即可以是 `int`、`float`、`double` 中的任意一种。
在 `main` 函数中,我们分别定义了三个 `int`、`float`、`double` 类型的变量,并分别调用了 `getMax` 和 `getMin` 函数模板,输出了结果。
这个程序可以输出以下结果:
```
Max of int: 3
Max of float: 3.3
Max of double: 3.33
Min of int: 1
Min of float: 1.1
Min of double: 1.11
```
用C++ 语言:输入任意数量的数字,求所有数字的最大值,最小值和这若干个数的平均值。
以下是使用C++语言编写的代码,可以输入任意数量的数字,然后计算它们的最大值、最小值和平均值:
```c++
#include <iostream>
#include <climits> // 需要包含此库以使用 INT_MAX 和 INT_MIN
using namespace std;
int main() {
int num, count = 0, sum = 0, max = INT_MIN, min = INT_MAX; // 初始化最大值和最小值
cout << "请输入数字,以输入-1结束:" << endl;
while (true) {
cin >> num;
if (num == -1) { // 输入-1表示结束
break;
}
count++; // 统计数字个数
sum += num; // 计算数字总和
if (num > max) { // 更新最大值
max = num;
}
if (num < min) { // 更新最小值
min = num;
}
}
if (count == 0) { // 没有输入数字
cout << "没有输入数字" << endl;
} else { // 输出结果
cout << "最大值:" << max << endl;
cout << "最小值:" << min << endl;
cout << "平均值:" << static_cast<double>(sum) / count << endl; // 强制类型转换为double型计算平均值
}
return 0;
}
```
提示:如果要输入浮点数,可以将变量类型改为`double`,同时使用`DBL_MAX`和`DBL_MIN`代替`INT_MAX`和`INT_MIN`。