C++输入三个数按从小到大输出
通过简单的取位互换使两个变量交换数值
正确代码
#include<iostream>
#include<math.h>
using namespace std;
int main() {
int a,b,c,x;
cin>>a>>b>>c;
if(a>b) {
x=a;
a=b;
b=x;
}
if(a>c) {
x=a;
a=c;
c=x;
} if(b>c) {
x=b;
b=c;
c=x;
}
cout<<a<<" "<<b<<" "<<c;
}
出现错误的代码
if(a>b) {
x=a;
a=b;
b=x;
} else if(a>c) {
x=a;
a=c;
c=x;
} else if(b>c) {
x=b;
b=c;
c=x;
}
阐述错误:加入了else if语句,错误认为跟单独if语句功能相同。
修正错误:if else语句的存在会导致当a>b时,将else if(…)后的逻辑语句直接略过,从而导致了错误的输出顺序出现。
另外的尝试: 我尝试使用条件语句a>b?a:b
进行判断大小,发现后面无法剔除数据对剩余两个数进行判断,只是单纯的能得到最大或最小值,而得不到是值是哪个变量的。
方法要点: 对变量进行换值,容易绕进去而导致错误。