#include<stdio.h>
int main(){
void exchangge(int *q1,int * q2, int *q3); //先定义三个形参指针
int a,b,c,*p1,*p2,*p3; //在定义三个变量,a,b,c
scanf("%d,%d,%d",&a,&b,&c); //a,b,c分别接收键盘输入
p1=&a; //p1.p2.p3分别指向abc
p2=&b;
p3=&c;
exchange(p1,p2,p3); //调用实参函数,调用结束后不会改变指针的指向
printf("%d,%d,%d\n",a,b,c); //最后输出a,b,c
return 0;
}
void enchange(int *q1,int *q2,int *q3){
void swap(int *pt1,int *pt2);
if(*q1<*q2)swap(q1,q2); //swap是交换函数,对输入的三个数进行比较
if(*q1<*q3)swap(q1,a3);
if(*q2<*q3)swap(q2,q3);
}
void swap(int *pt1,int *pt2){ //定义形参
int temp;
temp=*pt1;
*pt1=*pt2;
*pt2=temp; //交换指针指向的变量值
}
用三元表达式就可以
#include <stdio.h>
int main(void)
{
int a,b,c,d;
printf("输入三个整数:\n");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
d=a;a=b;b=d;
}
if(a>c)
{
d=c;c=a;a=d;
}
if(b>c)
{
d=b;b=c;c=d;
}
#if 1 //当把1换成0是就是从大到小排列
printf("%d %d %d\n",a,b,c);
#else
printf("%d %d %d\n",c,b,a);
#endif
return 0;
}
如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢
void main()
{
int a[3];
scanf("%d %d %d",a,a+1,a+2);
int i,j;
for(i=0;i<2;i++)
{
for(j=0;j<2-i;j++)
{
if(a[j] < a[j+1])
{
int t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
printf("%d,%d,%d",a[0],a[1],a[2]);
}
??
代码如下:
#include <stdio.h>
void fun(int *a,int *b,int *c)
{
int max ;
int min ;
int avg ;
max = *a > ( *b > *c ? *b:*c)? *a :( *b > *c ? *b:*c);
min = *a < ( *b < *c ? *b:*c)? *a :( *b < *c ? *b:*c);
avg = (*a + *b + *c) - max - min;
*a = max;
*b = avg;
*c = min;
}
int main()
{
int a,b,c;
printf("请输入3个数:");
scanf("%d %d %d",&a,&b,&c);
printf("排序前:a=%d b=%d c=%d\n",a,b,c);
fun(&a,&b,&c);
printf("排序后:a=%d b=%d c=%d\n",a,b,c);
return 0;
}
#include<stdio.h>
int main(void)
{
int a,b,c,t;
printf("请输入三个整数:\n");
scanf("%d,%d,%d",&a,&b,&c);
if(a<b){//完成a和b值的交换,a里面放最大值
t=a;
a=b;
b=t;
}
if(a<c){//完成a和c值的交换,a里面放最大值
t=a;
a=c;
c=t;
}
if(b<c){//完成b和c值的交换,a里面放最大值
t=b;
b=c;
c=t;
}
printf("%d %d %d\n",a,b,c);
return 0;
}