@rtn2020

Код с условием выхода, но работает только 1 scanf(), почему?

5e26612232804166893193.png
Учусь, учусь и тут наткнулся на обычное задание, где я хочу чтобы по завершению тела main() у меня спросили "Хотите еще раз? 1 - да | 2 - нет." Но выходит так. Просит ввести символ, ввожу, дальше показывает что с ним стало, в конце выдает вопрос, "Еще раз? 1- нет / другое - да." Ввожу например 2, луп повторяется, но эта двойка лезит в следующий скан где должен задаваться вопрос с символом, и сразу же выходит опять вопрос с "Еще раз? 1- нет / другое - да." Огромная благодарность отктикнувшимся!

#include <stdio.h>
#include <ctype.h>


int main(){

char a[10];
int i=0,d=0, sum=0;
do{
puts("Enter your character and see what functions do: \n");
scanf("%c",&a[i]);
printf("The letter %c %s letter\n",a[i],isalpha(a[i])!=0?"is a":"is not a");
printf("The letter %c %s space or tab character\n\n\n",a[i],isblank(a[i])!=0?"is a":"is not a");
i++;
puts("One more?\n");
puts("1 - NO || OTHER - YES\n");
scanf("%d",&d);
}while(d!=1);

return 0;
}
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
CityCat4
@CityCat4 Куратор тега C
//COPY01 EXEC PGM=IEBGENER
Чтобы гарантированно забирать символ с потока, используйте getc() или getchar() вместо scanf().

JFYI: Форматирование кода придумали не просто так, а чтобы глаза не ломать на таких вот "произведениях искуства".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект