程序不知道哪里出问题了输出的结果没有逆序排序,希望能帮忙解答一下
程序目的
设有一数列,包含10个数,要求程序先升序排好,从指定位置开始的n个数按逆序重新排序并输出新的完整数列吗,逆序处理要求用指针方法。
#include<stdio.h>
int main()
{
int a[10],i,j,n,sample,*p;
printf("please enter 10 integers\n");
for(i=0;i<10;i++){
scanf("%d",&a[i]);
getchar();
}
for(i=0;i<10;i++)
for(j=0;j<10-j;j++){
if(a[j]>a[j+1]){
sample=a[j];
a[j]=a[j+1];
a[j+1]=sample;
}
}
printf("please enter n\n");
scanf("%d",&n);
for(p=a+n-1,i=0,j=10-n;i<(10-n)/2;i++,j--){
sample=*(p+i);
*(p+i)=*(p+j);
*(p+j)=sample;
}
for(p=a+n-1;p<(a+10);p++){
printf("%d ",*p);
}
}
int main()
{
int a[10], i, j, n, sample, *p;
printf("please enter 10 integers\n");
for (i = 0; i < 10; i++)
{
scanf("%d", &a[i]);
// getchar();
}
for (i = 0; i < 10; i++)
for (j = 0; j < 9; j++) //
{
if (a[j] > a[j + 1])
{
sample = a[j];
a[j] = a[j + 1];
a[j + 1] = sample;
}
}
//--- 辅助,可删
for (p = a; p < (a + 10); p++)
{
printf("%d ", *p);
}
printf("\n");
//--
printf("please enter n\n");
scanf("%d", &n);
for (p = a + n - 1, i = 0, j = 10 - n; i < (10 - n) / 2; i++, j--)
{
sample = *(p + i);
*(p + i) = *(p + j);
*(p + j) = sample;
}
for (p = a; p < (a + 10); p++) //
{
printf("%d ", *p);
}
}