为什么不能实现所需要的功能????

//输入a、b、c三个整数,按先大后小的顺序输出a、b和c。注意请使用指针变量的方式进行比较和输出
//1.准备用冒泡排序的方式来进行比较排序
//2.用指针变量的方式进行比较和输出
//3.将交换的方式用函数来实现

include<stdio.h>

void swap(int p1,int p2) //这里传入的是一个副本,是一个单项性的值传递,所以可以使用两种方法1.引用 2.指针的方式
{

int temp=*p1;
*p1=*p2;
*p2=temp;

}

void rank(int p1,int p2,int* p3)
{

int a[3]={0};
a[0]=*p1;
a[1]=*p2;
a[2]=*p3;
for(int i=0;i<3;i++)
    for(int j=0;j<3-i;j++)
    {
        if(a[j]<a[j+1])
        {
            int* p1=&a[j];
            int* p2=&a[j+1];
            swap(&a[j],&a[j+1]);
        }
    }

    for(int m=0;m<3;m++)
    {
        printf("%d\n",a[m]);
    }

}

int main(){

int a[3]={0};
printf("请输入三个整数");
for(int i=0;i<3;i++)
{
    scanf("%d",&a[i]);
}
int* p1=&a[0];
int* p2=&a[1];
int* p3=&a[2];
rank(p1,p2,p3);
return 0;

}

阅读 1.2k
1 个回答

你这个

for(int m=0;m<3;m++)
{
    printf("%dn",a[m]);
}

应该写到外面吧,等排完序再输出结果

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进