printf выполняется несколько раз только на определенных входах
Программа выполняет команду printf несколько раз, когда вводом является "08" или "09", а не каким-либо другим аналогичным числом, скажем "03" или "07".
do
{
printf("Enter date:");
scanf("%i/%i/%i", &d, &m, &y);
}
while (d !=0 || m != 0 || y != 0);
Это вывод (цифры вводятся пользователем) -
Enter date:3/6/8
Enter date:3/6/08
Enter date:Enter date:04/05/06
Enter date:08/08/08
Enter date:Enter date:Enter date:Enter date:01/02/03
Enter date:04/05/06
Почему это происходит и как я могу это исправить?
1 ответ
Решение
Пока не ответили, так что это не повредит.
Я не уверен, правильно ли это, но, поскольку сегодня я больше читаю о C, я думаю, что это должно происходить, потому что scanf читает ввод как восьмеричное число, потому что оно начинается с нуля. И странное поведение может быть потому, что нет восьмерки 08 и 09.