#include<stdio.h>
int main(void)
{
int x,y,z,temp,min,max;
printf("请输入三个数字:\n");
scanf("%d%d%d",&x,&y,&z);
temp = x < y? x : y;
min = temp < z? temp : z;
temp = x < y? y : x;
max = temp < z? z : temp;
printf("从小到大排序:");
printf("%d%3d%3d",min,x + y + z - min - max,max);
return 0;
}
1663c-exercise-example5
简化代码如下:
#include <stdio.h>
int main()
{
int a,b,c;
printf ("输入三个整数:");
scanf ("%d%d%d",&a,&b,&c);
if (a>b&&a>c)/* 当第一个数(a)为最大时,直接输出 a */
;
else
a=(b>c) ? b : c; /* 当 a 不为最大数时,将剩下两数中最大的数赋值给 a*/
/* 输出 a 值(中间的 _?_:_ 为三目运算,指判断第一个表达式的真假,若第一个表达式为真,则第二个表达式的值代表整个表达式的值,若第一个表达式为假。则第三个表达式的值代表整个表达式的值) */
printf ("%d",a);
return 0;
}
1662c-exercise-example5
三目运算法
#include "stdafx.h"
//题目:输入三个整数x,y,z,请把这三个数由小到大输出。
int _tmain(int argc, _TCHAR* argv[])
{
int num1,num2,num3;
int max, min,mid;
printf("请输入三个数字:\n");
scanf_s("%d%d%d", &num1, &num2, &num3);
max = num1>num2 ? num1:num2;
max = max>num3 ? max:num3;
min = num1<num2 ? num1:num2;
min = min<num3 ? min:num3;
mid = (num1!=max && num1!= min) ? num1:num2;
mid = (mid!=max && mid!= min) ? mid:num3;
printf_s("从小到大排序:%d %d %d",min,mid,max);
return 0;
}
return 0;}
1661c-exercise-example5
参考方法:
#include<stdio.h>
int max(int,int);
int min(int,int);
int main()
{
int x,y,z,max0,max1,max2,min0,min1,min2;
printf("Please enter three number(1,2,3): ");
scanf("%d,%d,%d",&x,&y,&z);
max0=max(x,y);min0=min(x,y);
max1=max(max0,z);min1=min(max0,z);
max2=max(min0,min1);min2=min(min0,min1);
printf("The last is: %d,%d,%d",min2,max2,max1);
}
int max(int a,int b){
int temp,num;
if(a>b)
{
num=a;
}else{
num=b;
}
return num;
}
int min(int a,int b){
int temp,num;
if(a<b)
{
num=a;
}else{
num=b;
}
return num;
}
1665c-exercise-example5
参考方法:
#include <stdio.h> void swap(int *a,int *b){ //*a代表指针变量a,a存储的是地址,*a是地址的值 int temp; temp=*a; *a=*b; *b=temp; } int main(){ int x,y,z; printf("请输入三个数字:\n"); scanf("%d%d%d",&x,&y,&z); if(x>y) swap(&x,&y); if(x>z) swap(&x,&z); if(y>z) swap(&y,&z); printf("从小到大排序:%d %d %d\n",x,y,z); return 0; }1664c-exercise-example5
参考方法:
#include<stdio.h> int main(void) { int x,y,z,temp,min,max; printf("请输入三个数字:\n"); scanf("%d%d%d",&x,&y,&z); temp = x < y? x : y; min = temp < z? temp : z; temp = x < y? y : x; max = temp < z? z : temp; printf("从小到大排序:"); printf("%d%3d%3d",min,x + y + z - min - max,max); return 0; }1663c-exercise-example5
简化代码如下:
#include <stdio.h> int main() { int a,b,c; printf ("输入三个整数:"); scanf ("%d%d%d",&a,&b,&c); if (a>b&&a>c)/* 当第一个数(a)为最大时,直接输出 a */ ; else a=(b>c) ? b : c; /* 当 a 不为最大数时,将剩下两数中最大的数赋值给 a*/ /* 输出 a 值(中间的 _?_:_ 为三目运算,指判断第一个表达式的真假,若第一个表达式为真,则第二个表达式的值代表整个表达式的值,若第一个表达式为假。则第三个表达式的值代表整个表达式的值) */ printf ("%d",a); return 0; }1662c-exercise-example5
三目运算法
#include "stdafx.h" //题目:输入三个整数x,y,z,请把这三个数由小到大输出。 int _tmain(int argc, _TCHAR* argv[]) { int num1,num2,num3; int max, min,mid; printf("请输入三个数字:\n"); scanf_s("%d%d%d", &num1, &num2, &num3); max = num1>num2 ? num1:num2; max = max>num3 ? max:num3; min = num1<num2 ? num1:num2; min = min<num3 ? min:num3; mid = (num1!=max && num1!= min) ? num1:num2; mid = (mid!=max && mid!= min) ? mid:num3; printf_s("从小到大排序:%d %d %d",min,mid,max); return 0; }return 0;}1661c-exercise-example5
参考方法:
#include<stdio.h> int max(int,int); int min(int,int); int main() { int x,y,z,max0,max1,max2,min0,min1,min2; printf("Please enter three number(1,2,3): "); scanf("%d,%d,%d",&x,&y,&z); max0=max(x,y);min0=min(x,y); max1=max(max0,z);min1=min(max0,z); max2=max(min0,min1);min2=min(min0,min1); printf("The last is: %d,%d,%d",min2,max2,max1); } int max(int a,int b){ int temp,num; if(a>b) { num=a; }else{ num=b; } return num; } int min(int a,int b){ int temp,num; if(a<b) { num=a; }else{ num=b; } return num; }