我在处理if / else语句时遇到了很大的困惑,我构建了一个程序来决定三个提供的整数中的哪一个是最大的...我写了下面的代码:
int a,b,c,max;
cout<<"Please enter value 1: \t";
cin>>a;
cout<<"Please enter value 2: \t";
cin>>b;
cout<<"Please enter value 3: \t";
cin>>c;
if(a>b)
{
if(a>c)
max=a;
}
else if(b>a)
{
if(b>c)
max=b;
}
else if(c>a) //here comes the problem
{
if(c>b)
max=c;
}
cout<<"The Max value among the given value is:\t"<<max;
我为int a输入值12,为int c输入13,为int c输入14(意思是如果我在第三个实例中提供最大值)它向我显示垃圾值作为最大值(尽管有14个) ),那可能是什么问题?我在32位Windows 7上使用Dev C ++ 5.5.1。
答案 0 :(得分:0)
更容易和更易读的构造将是这样的:
int maximum(int a, int b, int c) {
int max = a;
if (b > max) {
max = b;
}
if (c > max) {
max = c;
}
return max;
}
甚至更短
if (a>= b&& a>= c)
cout << "The largest number is:" << a<< endl;
else if (b> =a&& b> =c)
cout << "The largest number is:" << b<< endl;
else if (c>= a&& c> =b)
cout << "The largest number is:" << c<< endl;
答案 1 :(得分:0)
正确格式化代码很简单,包括:
{
和}
int a,b,c,max;
cout<<"Please enter value 1: \t";
cin>>a;
cout<<"Please enter value 2: \t";
cin>>b;
cout<<"Please enter value 3: \t";
cin>>c;
if(a>b) {
if(a>c)
max=a;
} else if(b>a) {
if(b>c)
max=b;
} else if(c>a) {
if(c>b)
max=c;
}
cout<<"The Max value among the given value is:\t"<<max;