Прочесть с клавиатуры n текстовых строк с пробелами. - C (СИ)

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

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

#include <stdio.h>
 
int main ()
{
        typedef char string[256];
        int i, n;
    printf("n=");
    scanf("%i", &n);
    string s[n];
    for (i=1; i<=n; i++)
    {
        printf("%i: ", i);
        fgets(s[i], 256, stdin);
    }
    for (i=1; i<=n; i++)
    {
        printf("%i: %s\n", i, s[i]);
    }
        return 0;
}
Результат:
n=3
1: 2: текст текст текст
3: еще текст текст
1: 

2: текст текст текст

3: еще текст текст
Почему не считывается первая строка? В чем ошыбка?

Решение задачи: «Прочесть с клавиатуры n текстовых строк с пробелами.»

textual
Листинг программы
#include <stdio.h>
 
int main ()
{
        typedef char string[256];
        int i, n;
        printf("n=");
        scanf("%i", &n);
        string s[n];
        fflush(stdin);
        for (i=1; i<=n; i++)
        {
                printf("%i: ", i);
                fgets(s[i], 256, stdin);
        }
        for (i=1; i<=n; i++)
        {
                printf("%i: %s\n", i, s[i]);
        }
        return 0;
}

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

В этом коде:

  1. Типизируется массив символов как строка фиксированной длины.
  2. В цикле запрашивается количество строк для ввода (n).
  3. Создается массив строк s[n] для хранения введенных строк.
  4. Используя fflush(stdin), обнуляем буфер ввода, чтобы избежать ошибок при использовании scanf.
  5. В цикле считываются строки с клавиатуры и сохраняются в массиве s.
  6. Выводится на экран каждая строка, используя цикл.
  7. Программа завершается успешно, возвращая 0.

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


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

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

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