LINUX.ORG.RU

Считывает переменную со 2го раза


0

0

начинаю изучать СИ. вот в этом коде не пойму почему переменная year считывается со второго раза (т.е. неважно что я напишу в 1 раз и нажму enter, а считывается то что я напишу во второй раз и нажму enter).
#include <stdio.h>

int main()
{
int year;

printf("Введите год:");
scanf("%i\n",&year);

if (year % 4 == 0 && year % 100 !=0 || year % 400 == 0)
printf("%i високосный год\n", year);
else
printf("%i невисокосный год\n", year);
return 0;
}


не нужно в scanf писать \n

dilmah ★★★★★
()

> scanf("%i\n",&year);

Точно так?! Внимательно переписуй.

Boy_from_Jungle ★★★★
()

> scanf("%i\n",&year);

Вероятно бага тут.

> if (year % 4 == 0 && year % 100 !=0 || year % 400 == 0)


Неужели GCC не кидает предупреждение на эту строчку?

andreyu ★★★★★
()
Ответ на: комментарий от Boy_from_Jungle

> Скобок не хватает.

Скобок достаточно, чтобы работало, как задумано. GCC превентивно воняет на (a && b || c) только с -Wextra, насколько я помню.

const86 ★★★★★
()
Ответ на: комментарий от const86

> Скобок достаточно, чтобы работало,
угу

> GCC превентивно воняет на (a && b || c) только с -Wextra, насколько я помню.
не только

Boy_from_Jungle ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.