注册 登录
编程论坛 C++教室

两个值按大小交换没成功

domore 发布于 2019-08-31 16:17, 3038 次点击
这是一个随便输入10个数  然后升序输出的程序
我想问下为啥没交换?  怎么改?  谢谢
#include<iostream>
#include<iomanip>
using namespace std;
int main()
    {
    int i,j,temp,a[11];
    cout<<"enter data:"<<endl;
    for(i=1;i<=10;i++)
        {
        cout<<"a["<<i<<"]=";
        cin>>a[i];
        }
    cout<<endl<<"The original numbers:"<<endl;
    for(i=1;i<=10;i++)
        cout<<a[i]<<" ";
    cout<<endl;
    for(i=1;i<=9;i++)
        {
        for(j=i+1;j<=10;j++)
            if(a[i]>a[j])
            {
            temp=a[i];
            a[i]=a[j];
            a[i]=temp;
            }
        }

    cout<<endl<<"The sorted numbers:"<<endl;
    for(i=1;i<=10;i++)
        cout<<a[i]<<" ";
    cout<<endl;
    return 0;
}
只有本站会员才能查看附件,请 登录
6 回复
#2
林月儿2019-08-31 17:49
冒泡?
#3
rjsp2019-08-31 19:39
            temp=a[i];
            a[i]=a[j];
            a[i]=temp;

最后一个应当是 a[j] = temp;
#4
jyxiasf2019-09-05 14:53
#include<iostream>
#include<iomanip>
#include<stdio.h>
using namespace std;
int main()
    {
    int i,j,temp,a[11];
    cout<<"enter data:"<<endl;
    for(i=1;i<=10;i++)
        {
        cout<<"a["<<i<<"]  ";
        scanf("%d",&temp);
        a[i]=temp;
        }
    cout<<endl<<"The original numbers:"<<endl;
    for(i=1;i<=10;i++)
        cout<<a[i]<<" ";
    cout<<endl;
    for(i=1;i<=9;i++)
        {
        for(j=i+1;j<=10;j++)
            if(a[i]>a[j])
            {
            temp=a[i];
            a[i]=a[j];
            a[j]=temp;
            }
        }

    cout<<endl<<"The sorted numbers:"<<endl;
    for(i=1;i<=10;i++)
        cout<<a[i]<<" ";
    cout<<endl;
    return 0;
}

#5
domore2019-09-06 06:55
回复 3楼 rjsp
好人一生平安!!!没分就不送了  打lolADC我可以辅助你专业的  2333
#6
大头leo2019-10-27 18:36
最后交换应该是a[j]=temp
#7
weihuisuma2019-12-13 00:10
1