#include"stdio.h"
void chooserank(int *p)
{
int i,j,t,k;
int *pt;//这里可以去掉,有点多余
for(i=0;i<10;i++)//修改
{
k=i;
for(j=i+1;j<10;j++)
{
if(*(p+j)<*(p+k))//修改pt,把下面所有的pt改为p
{
k=j;
}
}//把if语句放在for语句外面,k找到最大值后才开始交换,放在里面只要找到一个比他大的就交换
if(k!=i)
{
t=*(p+i);
*(p+i)=*(p+k);
*(p+k)=t;
}
}
for(i=0;i<10;i++)
{
printf("%d ",*(p+i));//这里加一个空格,避免输出的数字连成一个整体
}
}
int main()
{
int str[100];
int i;
for(i=0;i<10;i++)
scanf("%d",&str[i]);
chooserank(str);
return 0;
}这样懂了吗
void chooserank(int *p)
{
int i,j,t,k;
int *pt;//这里可以去掉,有点多余
for(i=0;i<10;i++)//修改
{
k=i;
for(j=i+1;j<10;j++)
{
if(*(p+j)<*(p+k))//修改pt,把下面所有的pt改为p
{
k=j;
}
}//把if语句放在for语句外面,k找到最大值后才开始交换,放在里面只要找到一个比他大的就交换
if(k!=i)
{
t=*(p+i);
*(p+i)=*(p+k);
*(p+k)=t;
}
}
for(i=0;i<10;i++)
{
printf("%d ",*(p+i));//这里加一个空格,避免输出的数字连成一个整体
}
}
int main()
{
int str[100];
int i;
for(i=0;i<10;i++)
scanf("%d",&str[i]);
chooserank(str);
return 0;
}这样懂了吗