В онлайн компиляторе код (http://cpp.sh/4gnfb) при вводе:
4 1 2 3 4
выводит YES
, а в Visual Studio - выводит NO
.
Если вкратце, то код должен вывести YES
, если среди N
чисел присутствует 0. Я знаю, что это можно было бы написать проще и лаконичнее, мне важна сама проблема разного вывода. В чём может быть проблема? В онлайн компиляторе я потыкал разные версии c++, результат один и тот же.
Код ниже:
int main()
{
int N, i = 0, a;
cin >> N;
bool NovyiGod2018;
while (i < N)
{
cin >> a;
if (a == 0)
{
NovyiGod2018 = 1;
}
else if (NovyiGod2018 != 1)
{
NovyiGod2018 = 0;
}
++i;
}
if (NovyiGod2018 == 1)
{
cout << "YES";
}
else
{
cout << "NO";
}
}
Проблема - в неинициализированной переменной bool NovyiGod2018;
Исправьте на
bool NovyiGod2018 = false;
в вашем онлайн-компиляторе, и получите NO
.
И - для того и тип bool
, чтоб иметь значения true
/false
- лучше использовать для него именно эти значения, а не 0/1...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Не могу понять почему переменные "захлебываются" после введения второй и тдзаписи
Если указатель хранит адресс ячейки, то где хранится само значение?? например где хранится число 5?