|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这是一个把数组中10个数从大到小排列的程序。
#include <stdio.h>
void sort(int x[], int n);
void main()
{
int i, *p;
int a[10] = {3, 7, 9, 11, 0, 6, 7, 5, 4, 2};
printf("the original array:\n");
for(i = 0;i < 10;i++)
{
printf("%d ", a[i]);
}
printf("\n");
p = a;
sort(p, 10);
printf("the sorted array :\n");
for(i = 0;i < 10;i++)
{
printf("%d ", *(p+i));
}
}
void sort(int x[], int n)
{
int i, j, temp;
for(i = 0;i < n;i++)
{
for(j = 0; j <= n-i;j++)
{
if(x[j] < x[j+1])
{
temp = x[j];
x[j] = x[j+1];
x[j+1] = temp;
}
}
}
}
请问这个程序的错误在哪里?如果把main中的sort(p, 10)该为sort(p, 8)及以下就不会出错,只要是sort(p, 9) 或sort(p, 10)就出错。请高手指点
|
|