您好,根据你的程序,我觉得你是对一个整型数组进行排序,排序方法为选择排序,定义的函数pailie()传递的是一个整型指针。
你程序的错误之处在于数组越界,也就是内存引用错误。
第一个for语句,m是变化的,m
for(n=m+1;n
#include }
#include
using namespace std;
int main()
{
int a[10],i;
for(i=0;i<10;i++)cin>>a[i];
void pailie(int *p);
pailie(a);
for(i=0;i<10;i++)cout< return 0;
}
void pailie (int *p)
{
int k;
for(m=0;m<10;m++)
{
for(n=m;n<10;n++)
{
if(p[m]
}
}
//内存地址本身也是整形可以比较大小、只是你的m++在内存中是地址后移一位并没有取到数组下一位的地址(int不只是占一位)
- - 好吧,楼上大神正解、、、
地址不能比,但是指向的值随便比
#include
#include
using namespace std;
int main()
{
int a[10], i;
for (i = 0; i < 10; i++)
cin >> a[i];
void pailie(int *p);
pailie(a);
for (i = 0; i < 10; i++)
cout << a[i] << setw(8);
return 0;
}
void pailie(int *p)
{
int k;
int *m, *n;
for (m = p; m < p + 10; m++) // m < m + 10 是永远true的 (不考虑overflow的话)
{
for (n = m + 1; n < p + 10; n++) // 同理
{
if (*m < *n) {
k = *m;
*m = *n;
*n = k;
}
}
}
}
m