在C ++中显示三位数的最小数字

时间:2015-08-08 18:44:13

标签: c++ visual-studio min

我想制作一个程序,用户输入由空格分隔的三位数字,我想显示最小的数字。

请参阅我的代码:

#include<iostream>
using namespace std;
int main( )
{
   int a,b,c;
   cout<<" enter three numbers separated by space... "<<endl;               
   cin>>a>>b>>c;
   int result=1;

   while(a && b && c){
           result++;
           a--; b--; c--;
           }
   cout<<" minimum number is "<<result<<endl;

    system("pause");
    return 0;   
}  

示例输入:

3 7 1

示例输出:

2

它没有显示最小的数字。我的代码中的问题是什么?如何解决我的问题?

3 个答案:

答案 0 :(得分:4)

结果应该由零

初始化
int result = 0;
然而,这种方法是错误的,因为用户可以输入负值。

程序可以按以下方式编写

#include <iostream>
#include <algorithm>

int main( )
{
    std::cout << "Enter three numbers separated by spaces: ";

    int a, b, c;
    std::cin >> a >> b >> c;

    std::cout << "The minimum number is " << std::min( { a, b, c } ) << std::endl;

    return 0;   
}

答案 1 :(得分:3)

这里有一个隐含的假设,nameab是正面的。如果您允许这样的假设,那么您几乎就在那里 - 您只需要将c初始化为result而不是0

答案 2 :(得分:2)

提示:

编写c ++时,总是喜欢根据标准库中为您提供的算法编写代码。

#include <iostream>
#include <algorithm>

using namespace std;

int main( )
{
    int a,b,c;
    cout<<" enter three numbers separated by space... "<<endl;
    cin>>a>>b>>c;

    int result = std::min(a, std::min(b, c));

    cout<<" minimum number is " << result<<endl;

    system("pause");
    return 0;
}
很痛苦,它会阻止。它会产生更高的生产力。