一道排序题(中间不太明白哪儿错了)~~

想问一下这10个整数由大到小排列为啥好像不太对~谢谢~~(c语言滴)

#include<stdio.h>
int main()
{
    int i,a[10],*p=a,n,*m,temp;
    printf("Please input the numbers:\n");
    for(i=0;i<10;i++)
    scanf("%d",*(p++));
    p=a;
     for(p=a;p<a+10;p++)
          for(m=a+1;m<a+10;m++)
          if(*p<*m)
          {
              temp=*p;
              *p=*m;
              *m=temp;
          }
    printf("The sorted numbers are:\n");
    for(p=a;p<(a+10);p++)
    printf("%d\n",*p);
    printf("\n");
    return 0;
}


img


#include<stdio.h>
int main()
{
    int i,a[10],*p=a,n,*m,temp;
    printf("Please input the numbers:\n");
    for(i=0;i<10;i++)
    scanf("%d",p++);
    p=a;
     for(p=a;p<a+10;p++)
          for(m=p+1;m<a+10;m++)
          if(*p<*m)
          {
              temp=*p;
              *p=*m;
              *m=temp;
          }
    printf("The sorted numbers are:\n");
    for(p=a;p<(a+10);p++)
    printf("%d\n",*p);
    printf("\n");
    return 0;
}
//3 5 7 8 9 4 6 1 2 55

img


#include<bits/stdc++.h>
using namespace std;
bool comp(int x,int y)
{
    return x>y;
}
int main()
{
    int a[15];
    for(int i=0;i<10;i++)
    {
        cin>>a[i];
    }
    sort(a,a+10,comp);
    for(int i=0;i<10;i++)
    {
        cout<<a[i]<<" ";
    }
    return 0;
}
 

m的初始值有点问题,应该是比p多一步,而不是a

修改如下,供对照参考:

#include<stdio.h>
int main()
{
    void sort(int *p,int n);
    int i,a[10],*p=a,n,*m,temp;
    printf("Please input the numbers:\n");
    for(i=0;i<10;i++)
        scanf("%d",p++);     //scanf("%d",*(p++));
                             //p=a;
    for(p=a;p<a+10-1;p++)    //for(p=a;p<a+10;p++)
        for(m=p+1;m<a+10;m++)//for(m=a+1;m<a+10;m++)
            if(*p<*m)
            {
               temp = *p;
               *p   = *m;
               *m   = temp;
            }
    printf("The sorted numbers are:\n");
    for(p=a;p<a+10;p++)
        printf("%d ",*p);    //printf("%d\n",*p);
    printf("\n");
   
    return 0;
}