编程题:输入三个整数x,y,z,请把这三个数由小到大输出
请输入三个数字: 1 3 2 从小到大排序: 1 2 3
#include <stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #include <windows.h> int main(void) { int min ,a[3], t; puts("请输入三个数字"); scanf("%d%d%d",&a[0], &a[1], &a[2]); min = a[0]; int temp; for (int i = 0; i < 3; i++) { for (int j = i + 1; j < 3; j++) { if (a[j] < min) { min = a[j]; t = j; } } temp = a[t]; a[t] = a[i]; a[i] = temp; } printf("排序后\n"); for (int i = 0; i < 3; i++) { printf("%d ", a[i]); } return 0;
}
#include<iostream>
using namespace std;
int getExtremity(int x,int y,int flag)
{
if(flag) //flag非零时,返回较大者
return x>y?x:y;
}else //flag为零时,返回较小者
return x<y?x:y;
int main()
int x,y,z;
cin>>x>>y>>z;
int minimum=getExtremity(x,getExtremity(y,z,0),0);
int maximum=getExtremity(x,getExtremity(y,z,1),1);
int middleNumber=x+y+z-minimum-maximum;
cout<<minimum<<"\t"<<middleNumber<<"\t"<<maximum<<endl;
return 0;
程序分析:我们想办法把最小的数放到...
用户登录可进行刷题及查看答案
程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小
#include <stdio.h> int main() { int x,y,z,t; printf("\n请输入三个数字:\n"); scanf("%d%d%d",&x,&y,&z); if (x>y) { /*交换x,y的值*/ t=x;x=y;y=t; } if(x>z) { /*交换x,z的值*/ t=z;z=x;x=t; } if(y>z) { /*交换z,y的值*/ t=y;y=z;z=t; } printf("从小到大排序: %d %d %d\n",x,y,z); }
登录后提交答案