定义一个 20 个元素整型数组,所有元素初始化为 0;从键盘上输入非负数到数组,直到输入 负数时或达到 20 个元素时停止;求出数组中非 0 元素的最大值,最小值并输出;最后输出数组中 所有元素及最大值最小值。
时间: 2024-02-15 22:01:32 浏览: 85
好的,我来帮您解决这个问题。
以下是 C++ 代码实现:
```c++
#include <iostream>
#include <limits>
using namespace std;
int main() {
const int N = 20; // 定义数组大小
int arr[N] = {0}; // 初始化为 0
int num = 0; // 用于存储输入的数
int count = 0; // 记录已输入的数的个数
int max_num = INT_MIN; // 初始化为最小值
int min_num = INT_MAX; // 初始化为最大值
while (count < N) {
cout << "请输入一个非负整数:";
cin >> num;
if (num < 0) { // 输入负数时跳出循环
break;
}
arr[count] = num; // 将输入的数存入数组中
// 更新最大值和最小值
if (num > max_num) {
max_num = num;
}
if (num < min_num) {
min_num = num;
}
count++; // 已输入数的个数加 1
}
// 输出非 0 元素的最大值和最小值
cout << "非 0 元素的最大值为:" << max_num << endl;
cout << "非 0 元素的最小值为:" << min_num << endl;
// 输出数组中所有元素及最大值最小值
cout << "数组中所有元素为:";
for (int i = 0; i < N; i++) {
cout << arr[i] << " ";
}
cout << endl;
cout << "最大值为:" << max_num << endl;
cout << "最小值为:" << min_num << endl;
return 0;
}
```
程序运行时,会提示您输入非负整数,直到输入负数或达到数组大小时停止。然后程序会输出非 0 元素的最大值和最小值,以及数组中所有元素及最大值最小值。
阅读全文