Цикл выполняется по 2 раза проскакивая scanf - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#include <stdio.h>
main()
char b[100];
int m;
for(m=1;m<=100;m++)
{printf("Vvedite %d bukvu slova\n",m);
scanf("%c",&b[m]);
if(b[m]==' ') break;}
}
Кусок программы,цикл выполняется по 2 раза проскакивая scanf.Где косяк?

Решение задачи: «Цикл выполняется по 2 раза проскакивая scanf»

textual
Листинг программы
#include <stdio.h>
int main()
{
char b[100];
int m;
for(m=0;m< 99;m++)
{
  printf("Vvedite %d bukvu slova\n",m);
  fflush(stdin);
scanf("%c",&b[m]);
if(b[m]==' ')
  break;
}
}

Объяснение кода листинга программы

В этом коде:

  1. Объявлены две переменные: char b[100] и int m.
  2. Переменная m итерирует от 0 до 98 в цикле for.
  3. На каждой итерации выводится сообщение Vvedite bukvu slova\n с помощью функции printf.
  4. Функция fflush(stdin) используется для очистки буфера ввода.
  5. Затем выполняется функция scanf, которая считывает один символ из стандартного ввода и сохраняет его в массиве b с индексом m.
  6. Если считанный символ является пробелом, то цикл прерывается с помощью оператора break.
  7. Если цикл завершается, то программа заканчивается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы