写了一个又长又臭的代码,马马虎虎还是能够执行楼主的要求
----------------解决方案--------------------------------------------------------
各位 我修改了一下 代码如下 利用 指针 函数 数组 和冒泡排序的方法
能够完成题目的要求
#include<stdio.h>
int swap(int *m,int *n)
{
int temp;
temp=*m;
*m=*n;
*n=temp;
}
main()
{
int a[3],i,j;
printf("Please enter three numbers:\n");
for(i=0;i<3;i++)
scanf("%d",&a[i]);
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)
if(a[j]>a[i])
swap(&a[j],&a[i]);
for(i=0;i<3;i++)
printf("%d,",a[i]);
}
----------------解决方案--------------------------------------------------------
swap函数有错,int 类型却没有值返回
另外 a,b不应该取m,n的地址~~
----------------解决方案--------------------------------------------------------
这个题用指针有几种方法
----------------解决方案--------------------------------------------------------
还可以这样,用个中间变量来交换a[i]和a[j] 元素下标
#include<stdio.h>
int swap(int *m,int *n)
{
int temp;
temp=*m;
*m=*n;
*n=temp;
}
main()
{
int a[3],i,j,k;
printf("Please enter three numbers:\n");
for(i=0;i<3;i++)
scanf("%d",&a[i]);
for(i=0;i<3;i++)
{ k=i;
for(j=i+1;j<3;j++)
if(a[j]>a[k])
k=j;
swap(&a[i],&a[k]); }
for(i=0;i<3;i++)
printf("%d,",a[i]);
getch();}
----------------解决方案--------------------------------------------------------