程序【5】
题目:输入三个整数 x,y,z,请把这三个数由小到大输出。
用的编译环境是vs2022,对于scanf()该函数有要求必须声明,scanf_s(),可根据自己环境要求自行去掉_s改成scanf()。
在这里因为对自己的要求,训练自己,采用了两种方法。一种是大众版好理解的,另一种是通过数组比较繁琐的写法,数组的写法完全是锻炼自己使用数组的能力,正常情况下,还是以第一种写法为准。
第一种写法:
#include<stdio.h>
//:输入三个整数 x,y,z,请把这三个数由小到大输出。
int main() {
int x = 0;
int y = 0;
int z = 0;
int t = 0;
printf("请输入三个整数x,y,z:");
scanf_s("%d%d%d", &x, &y, &z);
if (x > y) {
t = x;
x = y;
y = t;
}
if (x > z) {
t = x;
x = z;
z = t;
}
if (y > z) {
t = y;
y = z;
z = t;
}
printf("该三位数字从小到大排序为:");
printf("%d %d %d", x, y, z);
return 0;
}
第二种写法:
#include<stdio.h>
int main()
{
int a[3] = {0}; //定义一个长度为3的数组并初始化
int i = 0;
int j = 0;
int t = 0;
printf("请输入三个整数:");
for (i = 0; i < 3; i++) {
scanf_s("%d", &a[i]); //运用循环输入数组
}
for (j = 0; j < 3; j++) { //比较大小,通过下标并排序
for (i = 0; i < 3 - j; i++)
if (a[i - 1] > a[i]) {
t = a[i];
a[i] = a[i - 1];
a[i - 1] = t;
}
}
printf("从小到大的排列顺序为:\n");
for (i = 0; i < 3; i++) //打印出排序后的数组
{
printf("%3d", a[i]);
}
}