C++Harry呀 2022-12-11 12:58 采纳率: 61.5%
浏览 129
已结题

任意输入 n 个整数,把它们的最大值,最小值求出来.

任意输入若干 个整数,把它们的最大值,最小值求出来.

输入格式
输入只有一行,包括一个整数后面跟着 若干个数. 每个数的范围在0到32767之间。

输出格式
输出只有一行,包括2个整数。

输入输出样例
样例 1
输入样例 复制
5 1 99 3 6 0
输出样例 复制
99 0
我的代码:

#include <iostream>
using namespace std;
int m[10000000];
int main () {
    int d = -100000000, x = 100000000;
    int d2, x2;
    int n;
    cin >> n;
    for (int i = 1;i <= n;i++) {
        cin >> m[i];
    }
```c++


for (int i = 1;i <= n;i++) {
    if (m[i] > d) {
        d = m[i];
        d2 = i;
    }
}
for (int i = 1;i <= n;i++) {
    if (m[i] < x) {
        x = m[i];
        x2 = i;
    }
}
cout << d << " " << x;
return 0;

}

运行结果:

0分

哪位大佬帮我看一下!
  • 写回答

2条回答 默认 最新

  • a5156520 2022-12-11 13:12
    关注

    数组的起下标和结束下标错了,改为起始为0,结束为n-1;然后最大值和最小值的初始值可以改为每个数输入范围相应的极限值即可,修改如下:

    #include <iostream>
    using namespace std;
    int main () {
        int d = 0, x = 32767;
        int d2, x2;
        int n;
        cin >> n;
        int m[n];
        
        for (int i = 1;i <= n;i++) {
            cin >> m[i-1];
        }
        
        for (int i = 1;i <= n;i++) {
            if (m[i-1] > d) {
                d = m[i-1];
               // d2 = i;
            }
        }
        
        
        for (int i = 1;i <= n;i++) {
            if (m[i-1] < x) {
                x = m[i-1];
              //  x2 = i;
            }
        }
        
        cout << d << " " << x;
        return 0;
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月28日
  • 已采纳回答 12月20日
  • 创建了问题 12月11日

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥15 深度学习残差模块模型
  • ¥20 两个不同Subnet的点对点连接
  • ¥50 怎么判断同步时序逻辑电路和异步时序逻辑电路
  • ¥15 差动电流二次谐波的含量Matlab计算
  • ¥15 Can/caned 总线错误问题,错误显示控制器要发1,结果总线检测到0
  • ¥15 C#如何调用串口数据
  • ¥15 MATLAB与单片机串口通信
  • ¥15 L76k模块的GPS的使用
  • ¥15 请帮我看一看数电项目如何设计