从键盘上输入3个整数,按由大到小的顺序输出。(C语言,用指针)

如题所述

#include <conio.h>

#include <stdio.h>

void swap(int *a,int *b) //改变实参指针变量所指变量的值

{

    int temp;

    temp=*a; //交换a和b的值

    *a=*b;

    *b=temp;

}

void exchange(int *p1,int *p2,int *p3)

{

    if(*p1>*p2) swap(p1,p2);//a>b,交换a和b的值

    if(*p1>*p3) swap(p1,p3);//a>c,交换a和c的值

    if(*p2>*p3) swap(p1,p3);//b>c,交换b和c的值

}

void main()

  int *p1,*p2,*p3,a,b,c;

  printf("%s","enter three integer number:");

  scanf("%d,%d,%d",&a,&b,&c);//从键盘输入三个整数,以逗号隔开

  p1=&a; //把3个整数分别赋给3个指针变量

  p2=&b;

  p3=&c;

  printf("交换前:%d,%d,%d\n",a,b,c);

  exchange(p1,p2,p3);

  printf("交换后:%d,%d,%d\n",a,b,c);

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-27
# include "stdio.h"
main()
{
int *a,*b,*c,*x;
scanf("%d%d%d",&a,&b,&c);
printf("%d,%d,%d\n",a,b,c);
if(a<b)
{
x=a,a=b,b=x;
}
if(a<c)
{
x=a,a=c,c=x;
}
if(b<c)
{
x=b;b=c;c=x;
}
printf("%d,%d,%d\n",a,b,c);
}

本回答被提问者采纳
第2个回答  2014-12-15
#include<stdio.h>
void main()
{
int a[3],q,i,j,k=0;
for(i=0;i<3;i++)
{
scanf("%d",a+i);
}
for(j=0;j<2;j++)
{
for(i=0;i<2-k;i++)
{
if(*(a+i)<*(a+i+1))
{
q=*(a+i);
*(a+i)=*(a+i+1);
*(a+i+1)=q;
}
}
k++;
}
for(i=0;i<3;i++)
{
printf("%d\t",*(a+i));
}
}