Постановка задачи:
Цикл 5 раз.Каждый раз спрашивайте у пользователя целое число, проверяйте, что получен ввод этого типа, а затем запрашивайте другой ввод, пока пользователь не введет пять правильных вводов.Вывод этой программы должен выглядеть следующим образом, предполагая, что пользователь дает пять правильных вводов типа int:
Hello!Пожалуйста, дайте мне целое число: 0
Спасибо!Пожалуйста, дайте мне еще одно целое число: 1
Спасибо!Пожалуйста, дайте мне еще одно целое число: 1
Спасибо!Пожалуйста, дайте мне еще одно целое число: 2
Спасибо!Пожалуйста, дайте мне еще одно целое число: 3
Спасибо!Я доволен пятью целыми числами.
Мои попытки:
#include <stdio.h>
int invalid(x)
{
printf("\nThat was not an integer, please give me an integer: ");
scanf("%d", &x);
}
int main()
{
int a, b, c, d, e, x;
printf("Hello! Please give me an integer: ");
scanf("%d", &a);
if(scanf("%d", &a) != 1)
{
invalid(x);
}
printf("\nThanks! Please give me another integer: ");
scanf("%d", &b);
if(scanf("%d", &b) != 1)
{
invalid(x);
}
printf("\nThanks! Please give me another integer: ");
scanf("%d", &c);
if(scanf("%d", &c) != 1)
{
invalid(x);
}
printf("\nThanks! Please give me another integer: ");
scanf("%d", &d);
if(scanf("%d", &d) != 1)
{
invalid(x);
}
printf("\nThanks! Please give me another integer: ");
scanf("%d", &e);
if(scanf("%d", &e) != 1)
{
invalid(x);
}
printf("\nThanks! I am happy with five integers.\n");
return 0;
}
// Failed attempt to use a loop //
for(i = 0; i < 4; i++)
{
printf("Thanks! Please give me another integer: ");
scanf("%d", &y);
if(scanf("%d", &y) != 1)
{
invalid(y);
}
}
do
{
printf ("Thanks! Please give me another integer: ", );
scanf("%d", &x);
for(scanf("%d", &x) != 1)
{
printf("That was not an integer, please give me an integer: ")
scanf("%d", &x);
}
i++;
} while (i < 4);
Общие выходы, которые я получаю из первого ввода, состоят из буквы или нецелого числа:
Hello! Please give me an integer: d
That was not an integer, please give me an integer: Thanks! Please give me another integer:
That was not an integer, please give me an integer: Thanks! Please give me another integer:
That was not an integer, please give me an integer: Thanks! Please give me another integer:
That was not an integer, please give me an integer: Thanks! Please give me another integer:
That was not an integer, please give me an integer: Thanks! I am happy with five integers.