Codeforces выводит что-то другое - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть следующий код.

CodeBlocks выводит NO для следующего входа, но Codeforces выводит YES?

Для следующего ввода:

1500 1500 1500 1 2 3, правильный вывод - NO (правильный в CodeBlocks), но он выводит YES с "компилятором" Codeforces (он же пользовательский вызов).

Я попробовал все, и у меня очень много идей.

#include <stdio.h>
#include <string.h>

int main()
{
int andrewGrapes, dmitryGrapes, michalGrapes;
int greenGrapes, purpleGrapes, blackGrapes;
int andrewCheck, dmitryCheck, michalCheck;

// how many grapes they want to eat
scanf("%d", &andrewGrapes); // green grapes only
scanf("%d", &dmitryGrapes); // purple and green
scanf("%d", &michalGrapes); // any grapes

// number of grapes
scanf("%d", &greenGrapes);
scanf("%d", &purpleGrapes);
scanf("%d", &blackGrapes);

if (greenGrapes >= andrewGrapes)
{
    andrewCheck = 1;
    greenGrapes = greenGrapes - andrewGrapes;
}

if (greenGrapes + purpleGrapes >= dmitryGrapes)
{
    greenGrapes = greenGrapes - dmitryGrapes;
    purpleGrapes = purpleGrapes - dmitryGrapes;

    dmitryCheck = 1;
}

//if (greenGrapes + purpleGrapes + blackGrapes >= michalGrapes)
  //  michalCheck = 1;

if (andrewCheck == 1)
{
    if (dmitryCheck == 1)
    printf("YES");
}   else printf("NO");

return 0;
}

1 Ответ

0 голосов
/ 14 февраля 2019

Вы не инициализируете свои переменные, поэтому изначально они содержат случайные фиктивные значения.Это не проблема для andrewGrapes, dmitryGrapes, michalGrapes, greenGrapes, purpleGrapes и blackGrapes, поскольку каждому из них будет присвоено значение scanf (при условии, что каждый вызов завершится успешно).

Однако, andrewCheck будет присвоено значение только тогда, когда if (greenGrapes >= andrewGrapes) является истинным.dmitryCheck будет присвоено значение только в том случае, если if (greenGrapes + purpleGrapes >= dmitryGrapes) истинно.

Если какое-либо или оба условия неверны, соответствующая переменная сохранит свое случайное поддельное значение, и когда вы приступите к проверке этих переменных, результат будетбыть таковым.

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