📜  门|门CS 2008 |第 62 题(1)

📅  最后修改于: 2023-12-03 14:58:36.768000             🧑  作者: Mango

门|门CS 2008 |第 62 题

题目描述

在n个整数中,找出绝对值最小的数,并输出该数的绝对值和原值。如果有多个绝对值相等的数,输出值最小的整数。要求用scanf输入,printf输出。

解题思路

题目要求找出绝对值最小的数,并输出该数的绝对值和原值。因此,首先需要读入n个整数,并将它们的绝对值以及原值记录下来。然后,我们可以通过比较绝对值的大小来找到绝对值最小的数,并记录下对应的原值。

需要注意的是,如果有多个绝对值相等的数,输出值最小的整数。因此,在找到绝对值最小的数之后,还需要比较它们的值的大小,找到值最小的那个。

最后,按照题目要求输出结果即可。

代码实现
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    int n, i, number, abs_min = 99999999, value_min = 99999999;

    scanf("%d", &n);

    for (i = 0; i < n; i++) {
        scanf("%d", &number);

        int abs_tmp = abs(number);
        if (abs_tmp < abs_min) {
            abs_min = abs_tmp;
            value_min = number;
        } else if (abs_tmp == abs_min && number < value_min) {
            value_min = number;
        }
    }

    printf("%d %d\n", abs_min, value_min);

    return 0;
}

注意:由于题目要求用scanf输入,printf输出,因此需要包含stdio.h头文件。

总结

此题要求用scanf输入,printf输出,并需要记录绝对值最小的数以及对应的原值。在实现时需要注意处理多个绝对值相等的情况,并按照题目要求输出结果。