这个c++哪里错了? 帮帮忙吧 我看不出来

来源:百度知道 编辑:UC知道 时间:2024/06/03 06:55:56
我想用指针输入一个数组,然后按照降序输出,可是不知道自己错在哪里了,希望能指教

// 0013.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream.h>
void sorted (int *m,int n )
{
int *p,*q;int t;
for (p=m;p<m+n-1;p++)
{for (q=p;q<p+n-1;q++)
if (*q>*p)
{t=*q;*q=*p;*p=t;};}

}
void main()
{ int a[6];
for (int i=0;i<6;i++)
cin>>a[i];
sorted (a, 6);
for ( i=0;i<6;i++)
cout<<a[i]<<endl;
}

修改控制两层循环的for语句:
for (p=m;p<m+n-1;p++)
{for (q=p;q<p+n-1;q++)

for (p=m;p<m+n;p++)
{for (q=p;q<m+n;q++)
其他不动

修改后:
#include <iostream.h>
void sorted (int *m,int n )
{
int *p,*q;int t;
for (p=m;p<m+n;p++)
{for (q=p;q<m+n;q++)
if (*q>*p)
{t=*q;*q=*p;*p=t;};}

}
void main()
{ int a[6];
for (int i=0;i<6;i++)
cin>>a[i];
sorted (a, 6);
for ( i=0;i<6;i++)
cout<<a[i]<<endl;
}

void sorted (int *m,int n )
{
int *p,*q;int t;
for (p=m;p<m+n-1;p++){
for (q=p;q<p+n;q++) //你这行错了,我改成这样,你再试试
if (*q>*p){
t=*q;*q=*p;*p=t;
}
}
}