VC++按升序排列数字

来源:百度知道 编辑:UC知道 时间:2024/05/15 13:16:15
输入4个整数,要求按升序输出(从小到大)。
最好能有多种解法,越简单的越好。
wsxxfttt兄讲的很详细,谢了,我再想想,不过按照你最后的代码,搞出来的结果有些问题。 后面输入的数字一旦比前面的大,程序就将后面输出的比刚才将达的那个数字要小的数字全部变成刚才较大的那个数(好拗口),比如输入1 2 3 4,程序正常,但是一旦输入1 3 2 4,则结果是1 3 3 4。是不是哪个细节没注意?困惑中……嘿嘿 找出来,我加30分。

//冒泡法排序,最快的排序方法。

#include<iostream.h>
void main()
{
int a[4], i , k, temp;
for(i=0;i<4;i++)
cin>>a[i]; //输入数组
for(i=0;i<4;i++)//是控制外循环 总共循环4次
for(k=0;k<4-i;k++)//当 i=0时 这里的循环就是4次 如果i=1(就是说己有一个数冒到最后了 相对地,4-i就控制内循环不用再扫描己经冒了的"泡")
if(a[k]>a[k+1])
temp=a[k],a[k]=a[k+1],a[k+1]=temp; //将较大的值赋给temp,较小的值赋给a【k】,自己看冒泡法吧,很重要。
for(i=0;i<4;i++)
cout<<a[i]<<endl; //按从小到大输出
}

比较大小,用if语句(此为两个数的,三个数四个数的话比较麻烦,原理与这个相同,我想你们还没学循环就用这种方法了。
提示:
if(a>b)
if(b>c) cout<<c<<" "<<b<<" "<<a<<endl;
if(b<c) cout<<b<<" "<<c<<" ""a<<endl;
if(b>a)
if......
if......
后面的你自己想想看,然后代入到下面这个程序中,开始学编程是关键,一定要自己多动手,我再说就是害你,虽然我比较喜欢害人。

#include<iostream.h>
void main()
{
int