如何打印用户在C++中输入的 10 个数字的最小值

How to print the smallest value of 10 numbers entered by the user in C++

本文关键字:输入 最小值 数字 C++ 何打印 打印 用户      更新时间:2023-10-16

该程序从用户那里读取10个整数并打印最小的数字。所以这是我的代码示例:

#include <iostream>
using namespace std;
int main () {
int n,min=1;
for (int i = 0 ; i<10 ; i++){
    cin>>n;
    if (n<min)
        min = n;
}
cout <<min;
}

所以这是我的问题:如果我从 1 到 2 输入,为什么我会打印"1",您可能会说因为 if 条件不会执行任何内容,所以它会打印初始化的"1"所以有没有另一种方法可以编码?

若要根据值计算最小值,不应初始化变量。假设您拥有的第一个值是最小值,然后开始循环。

cin>>n;
min=n;

为了与我们希望最小值为 10 个数字的事实保持一致,我们需要少迭代一次。

为此,只需更改

for (int i = 0 ; i<10 ; i++)

for (int i = 0 ; i<9 ; i++)

您正在输出1,因为这是您初始化min的值,并且如果您输入的所有值都大于 1,则循环永远不会更新min

您需要将min初始化为输入的第一个值:

#include <iostream>
int main () {
    int n, min;
    for (int i = 0; i < 10; i++) {
        std::cin >> n;
        if ((n < min) || (i == 0))
            min = n;
    }
    std::cout << min;
    return 0;
}

或:

#include <iostream>
int main () {
    int n, min;
    cin >> min;
    for (int i = 1; i < 10 ; i++) {
        std::cin >> n;
        if (n < min)
            min = n;
    }
    std::cout << min;
    return 0;
}

或者,将值放在数组中并使用std::min_element()

#include <iostream>
#include <algorithm>
int main () {
    int arr[10];
    for (int i = 0; i < 10; i++) {
        std::cin >> arr[i];
    }
    std::cout << *std::min_element(arr,  arr+10);
    return 0;
}