从键盘上输入四个短整型数,求这四个数中最大的无符号数和最小无符号数及对应的输入值,并输出最大的无符号数和最小无符号数的差

从键盘上输入四个短整型数,求这四个数中最大的无符号数和最小无符号数及对应的输入值,并输出最大的无符号数和最小无符号数的差


#include <stdio.h>
#include <limits.h>
int main() {
    unsigned short a, b, c, d;
    printf("请输入四个短整型数:");
    scanf("%hu %hu %hu %hu", &a, &b, &c, &d);
    unsigned short max = 0, min = USHRT_MAX;
    unsigned short arr[4] = {a, b, c, d};
    for(int i = 0; i < 4; i++) {
        if(arr[i] > max) {
            max = arr[i];
        }
        if(arr[i] < min) {
            min = arr[i];
        }
    }
    printf("最大无符号数为%hu,对应的输入值为", max);
    for(int i = 0; i < 4; i++) {
        if(arr[i] == max) {
            printf("%hu ", arr[i]);
        }
    }
    printf("\n");
    printf("最小无符号数为%hu,对应的输入值为", min);
    for(int i = 0; i < 4; i++) {
        if(arr[i] == min) {
            printf("%hu ", arr[i]);
        }
    }
    printf("\n");
    printf("最大无符号数和最小无符号数的差为%hu\n", max - min);
    return 0;
}

使用了无符号短整型(unsigned short)来存储输入的四个数,这样可以处理无符号数。程序使用了两个变量max和min来分别记录最大和最小的无符号数,使用了一个数组来存储输入的四个数。程序使用了for循环来遍历数组中的每个数,找出最大和最小的无符号数,然后再次遍历数组,找出对应的输入值。最后计算最大无符号数和最小无符号数的差并输出即可。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^