想问一下这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;
}
#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
#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;
}