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

选择排序法编程出现了一点小问题,不知如何解释,请教!

mengni0219 发布于 2013-11-01 15:36, 403 次点击
#include<iostream>
using namespace std;
int main()
{
    const int Max=5;
    int i,j,n,a[Max];
    for(n=0;n<=Max;n++)
    {
        cin>>a[n];
        if(a[n]<0)
            break;
    }
    for(i=0;i<n-1;i++)
        for(j=i+1;j<=n-1;j++)
        {               
            int t;        int t的位置让我很疑惑,放在这里答案会出错,而移到if语句块里就正确了,请问到问题出在哪里
            if(a[i]<a[j])
                t=a[i];
                a[i]=a[j];
                a[j]=t;
        }
    for(i=0;i<=n-1;i++)
        cout<<a[i]<<"\t";
    system("pause");
    return 0;
}


[ 本帖最后由 mengni0219 于 2013-11-1 15:40 编辑 ]
3 回复
#2
peach54602013-11-01 15:43
为什么我感觉你这个T放在哪都不对呢?
应该编译都编译不过呀...
#3
embed_xuel2013-11-01 15:50
以下是引用mengni0219在2013-11-1 15:36:12的发言:
        for(j=i+1;j<=n-1;j++)
        {               
            int t;        int t的位置让我很疑惑,放在这里答案会出错,而移到if语句块里就正确了,请问到问题出在哪里
            if(a<a[j])
                t=a;
                a=a[j];
                a[j]=t;
        }

for下面一大堆语句知道用{}括起来,那if语句下面的怎么就不知道用{}括起来???
#4
zhu4044241182013-11-03 22:07
那你在定义 i,j,n,的时候吧t也定义了可以不 ,你可以试试,一次定义完,也好避免后面忘了
1