C语言——任意输入三个整数,从小到大输出
要求:将输入的三个数中,从小到大输出
解法:引入第四个“变量”,作为这3个数的中间存储空间进行转换!
常规计算:
#include<stdio.h>
int main()
{
int data1;
int data2;
int data3;
int datatmp;
printf("请输入三个数:\n");
scanf("%d%d%d",&data1,&data2,&data3);
//data1和data2判断,让data1为小数
if(data1 > data2){
datatmp = data1;
data1 = data2;
data2 = datatmp;
}
//data1和data3判断,让data1为小数,这时候data1是最小数
if(data1 > data3){
datatmp = data1;
data1 = data3;
data3 = datatmp;
}
//data2和data3判断,求出中间的数和最大数
if(data2 > data3){
datatmp = data2;
data2 = data3;
data3 = datatmp;
}
printf("%d,%d,%d\n",data1,data2,data3);
}
指针计算:
include<stdio.h>
void two(int * aq1,int * aq2)
{
int temp;
temp = * aq1;
* aq1 = * aq2;
* aq2 = temp;
}
void one(int * a1,int * a2,int * a3)
{
if(* a1 > * a2) two(a1,a2);
if(* a1 > * a3) two(a1,a3);
if(* a2 > * a3) two(a2,a3);
}
int main()
{
int a,b,c;
int *p1,*p2,*p3;
printf("请任意输入三个整数:\n");
scanf("%d%d%d",&a,&b,&c);
p1 = &a;
p2 = &b;
p3 = &c;
one(p1,p2,p3);
printf("%d %d %d",a,b,c);
}