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;
}


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

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

dilmah ★★★★★ ()

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

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

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

Boy_from_Jungle ★★★★ ()

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

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

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

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


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

andreyu ★★★★★ ()
Ответ на: Re: Считывает переменную со 2го раза от Boy_from_Jungle

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

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

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

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