我想制作一个程序,用户输入由空格分隔的三位数字,我想显示最小的数字。
请参阅我的代码:
#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
它没有显示最小的数字。我的代码中的问题是什么?如何解决我的问题?
答案 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)
这里有一个隐含的假设,name
,a
和b
是正面的。如果您允许这样的假设,那么您几乎就在那里 - 您只需要将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;
}
很痛苦,它会阻止。它会产生更高的生产力。
)