Как напечатать 2 самых маленьких числа от неизвестного числа чисел - PullRequest
0 голосов
/ 23 декабря 2018

Мне нужна помощь в написании кода на C

Мне нужно написать код, который получает неизвестные числа от пользователя (до INT_MAX) и печатать из них два наименьших числа.

Может кто-нибудь помочь мне с кодом?искал около часа в режиме онлайн.

Лучшее, что я получил на данный момент:

#include <stdio.h>
#include <limits.h>

void main()
{
    int num, min1 = INT_MAX, min2 = INT_MAX;
    int temp1 = 0, temp2 = 0;

    printf("Plese enter your numbers:\n");

    do
    {
        scanf("%d\n", &num);
        temp1 = num;
        temp2 = num;

        if ((temp1 < min1) && (temp1 > 0));
        {
            min1 = num;
        }

        if ((temp2 < min2) && (temp2 > 0))
        {
            min2 = temp2;
        }

    } while (num != 0);

    printf("%-5d%5d\n\n", min1, min2);
}

1 Ответ

0 голосов
/ 23 декабря 2018
#include <limits.h>
#include <stdio.h>

int main()
{
    int m1, m2, num;
    m1 = m2 = INT_MAX;
    while(scanf("%d", &num) == 1)
    {
        if(num < m1)
        {
            m2 = m1;
            m1 = num;
        }
        else if(num < m2)
        {
            m2 = num;
        }
    }
    printf("%d and %d\n", m1, m2);
    return 0;
}

scanf("%d", &num); читает целое число и возвращает количество успешно прочитанных аргументов.Так что, пока он читает int, он будет продолжать цикл.Чтобы выйти из цикла, вы можете ввести ^X (EOF) в терминале.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...