‹ 上一题 下一题 ›

g1-08838. 最值·求最小值方向写反 未做

1000 ms 256 MB 测试点 ? 知识点题GESP-11级·循环结构客观题单选

想求 n 个数中的最小值,程序先读 n,再把第二个数直接当 mn 的初值:

int n, x, mn;
cin >> n >> mn;
for (int i = 2; i <= n; i++) {
    cin >> x;
    if (x > mn) {
        mn = x;
    }
}
cout << mn << endl;

输入 5 3 1 4 1 5,程序却输出了 5。病根是( )。

  • A. 比较方向写反了:求最小值应该用 x < mn,写成 x > mn 会一路把更大的数换进来
  • B. 初值不该用第二个数,应该把 mn 设成 0
  • C. 循环少读了一个数,应该从 i = 1 跑到 i = n
  • D. 循环干不了找最值的活,得先把 n 个数排好序
未选择
输入
输出

            
答案