C语言任意给四位数排最大和最小
时间: 2023-12-03 12:45:07 浏览: 162
假设这个四位数为abcd,最大数的排列方式为:首先将a与剩余的三位数字中最大的数字交换位置,然后将b与剩余的两位数字中最大的数字交换位置,再将c与剩余的一位数字中最大的数字交换位置。最小数的排列方式与最大数相反,即将a与剩余的三位数字中最小的数字交换位置,然后将b与剩余的两位数字中最小的数字交换位置,再将c与剩余的一位数字中最小的数字交换位置。
下面是C语言的代码实现:
```c
#include <stdio.h>
int main() {
int num, a, b, c, d, max, min;
printf("请输入一个四位数:");
scanf("%d", &num);
d = num % 10;
c = num / 10 % 10;
b = num / 100 % 10;
a = num / 1000;
// 最大数的排列方式
max = a * 1000 + b * 100 + c * 10 + d;
if (b > a) {
int tmp = a;
a = b;
b = tmp;
}
if (c > a) {
int tmp = a;
a = c;
c = tmp;
}
if (d > a) {
int tmp = a;
a = d;
d = tmp;
}
if (c > b) {
int tmp = b;
b = c;
c = tmp;
}
if (d > b) {
int tmp = b;
b = d;
d = tmp;
}
if (d > c) {
int tmp = c;
c = d;
d = tmp;
}
printf("最大数:%d\n", max);
// 最小数的排列方式
min = a + b * 10 + c * 100 + d * 1000;
if (b < a) {
int tmp = a;
a = b;
b = tmp;
}
if (c < a) {
int tmp = a;
a = c;
c = tmp;
}
if (d < a) {
int tmp = a;
a = d;
d = tmp;
}
if (c < b) {
int tmp = b;
b = c;
c = tmp;
}
if (d < b) {
int tmp = b;
b = d;
d = tmp;
}
if (d < c) {
int tmp = c;
c = d;
d = tmp;
}
printf("最小数:%d\n", min);
return 0;
}
```
示例输出:
```
请输入一个四位数:4231
最大数:4321
最小数:1234
```
阅读全文