Нужно посчитать количество строк и табуляций - C (СИ)

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

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

Привет. Нужна помощь. Спрашивать не у кого, пишу с элементерными вопросами сюда, сорри. Нужно посчитать кол-во строк и табуляций. Все компилируется, но не считает (по крайней мере не выводит на экран) второй показатель - выдает всегда ноль. Первый (кол-во строк) считает. По отдельности программы работают и считают. Спасибо.
#include <stdio.h>
 
main()
{
    int nl, c, nt, t;
    nl = 0; nt = 0;
    while ((c = getchar()) != EOF)
        if (c == '\n')
        ++nl;
    while ((t = getchar()) != EOF)
        if (t == '\t')
        ++nt;
        printf("%d %d\n",nl,nt);
}

Решение задачи: «Нужно посчитать количество строк и табуляций»

textual
Листинг программы
//Подсчет пробелов, табуляций и новых строк
 
#include<stdio.h>
#define EOF '^'
int main()
{
    int np=0,nt=0,nn=0;
    char c;
    
    while((c=getchar())!=EOF){
        if(c==' ') ++np; 
        else if(c=='\t') ++nt;   
        else if(c=='\n') ++nn;      
    }
    printf("%d\t%d\t%d\n",np,nt,nn);
    return 0;
  
}

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

В этом коде происходит подсчет количества пробелов, табуляций и новых строк в тексте.

  1. #include — подключаем стандартную библиотеку для ввода-вывода.
  2. #define EOF '^' — определяем константу EOF, которая будет использоваться для обозначения конца файла.
  3. int main() — функция main() является точкой входа в программу.
  4. char c; — объявляем переменную типа char для хранения символа.
  5. while((c=getchar())!=EOF) — выполняем цикл while, который будет выполняться до тех пор, пока не будет достигнут конец файла. Внутри цикла получаем символ с помощью функции getchar() и присваиваем его переменной c.
  6. if(c==' ') ++np; — если символ равен пробелу, увеличиваем значение переменной np на 1.
  7. else if(c=='\t') ++nt; — если символ равен табуляции, увеличиваем значение переменной nt на 1.
  8. else if(c=='\n') ++nn; — если символ равен новой строке, увеличиваем значение переменной nn на 1.
  9. printf(%d\t%d\t%d\n,np,nt,nn); — выводим результаты подсчета на экран.
  10. return 0; — завершаем работу программы.

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


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

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

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