c++中输入四个int整数,将其大小顺序输出

我的程序如下,但是运行的时候,如果是个位数的话没有问题,能按从大到小输出,但是只要输入两位数或者三位数的时候就老实不行,求大大们指点,最好就从这个程序里面来指点;
#include <iostream.h>
void main()
{
int a,b,c,d,i;
cout<<"请输入四个整数"<<endl;
cin>>a>>b>>c>>d;
if(a<b) i=a;a=b;b=i;
if(a<c) i=a;a=c;c=i;
if(a<d) i=a;a=d;d=i;
if(b<c) i=b;b=c;c=i;
if(b<d) i=b;b=d;d=i;
if(c<d) i=c;c=d;d=i;
cout<<a<<' '<<b<<' '<<c<<' '<<d<<endl;
}

①其实你写的程序思路是对的,语法是错的。

②由于C语言不是以行作为语句结束的标示符,而是以分号,所以if如果不加大括号的话,只包含最近的那一句分号语句,也就是i=a;
if(a<b) i=a;a=b;b=i; 其实等价于:
if(a<b)
i=a;
a=b;
b=i;

③正确的方法是加上大括号:
#include <iostream.h>

void main()
{
int a,b,c,d,i;
cout<<"请输入四个整数"<<endl;
cin>>a>>b>>c>>d;
if(a<b) {i=a;a=b;b=i;}
if(a<c) {i=a;a=c;c=i;}
if(a<d) {i=a;a=d;d=i;}
if(b<c) {i=b;b=c;c=i;}
if(b<d) {i=b;b=d;d=i;}
if(c<d) {i=c;c=d;d=i;}
cout<<a<<' '<<b<<' '<<c<<' '<<d<<endl;

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-15
#include<iostream.h>
int main()
{
int a[4],temp;
cout<<"请输入四个数:"<<endl;
cin>>a[0]>>a[1]>>a[2]>>a[3];
for(int i=0;i<4;i++)
for(int j=i+1;j<4;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
cout<<a[3]<<a[2]<<a[1]<<a[0];
return 0;
}
第2个回答  2011-01-15
你确定如果是个位数的话没有问题?
你的思路完全是混乱的 重新写吧
相似回答