Расстановка функций вывода - C (СИ)

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

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

Меня интересует, как мне расположить функции вывода так, что бы количество замен выводилось не по окончанию цикла, а после каждого вывода знаков после замены так, что бы эти 2 значения не налазили друг на друга? А то у меня получается что то вида q0w0.1!!2 и тд, вертикальный вывод в расчет не брать
Листинг программы
  1. #include <stdio.h>
  2. int main(void)
  3. {
  4. char ch;
  5. int expense = 0;
  6. while((ch = getchar()) != '#')
  7. {
  8. if(ch != '#')
  9. switch(ch)
  10. {
  11. case '.': //замена "." на "!"
  12. printf("!");
  13. expense++;
  14. break;
  15. case '!': // замена "!" на "!!"
  16. printf("!!");
  17. expense++;
  18. break;
  19.  
  20. default :
  21. putchar(ch); //вывод знаков после замены
  22. continue;
  23. }
  24. }
  25. printf("%d", expense); //вывод количества замен
  26. getchar();
  27. getchar();
  28. return 0;
  29. }

Решение задачи: «Расстановка функций вывода»

textual
Листинг программы
  1. #include <stdio.h>
  2. int main(void)
  3. {
  4.     char ch;
  5.     int expense = 0;
  6.     while((ch = getchar()) != '#')
  7.     {
  8.         if(ch != '#')
  9.         switch(ch)
  10.         {
  11.         case '.':     //замена "." на "!"
  12.             printf("!");
  13.             expense++;
  14.             break;
  15.        
  16.         case '!':        // замена "!" на "!!"
  17.             printf("!!");
  18.             expense++;
  19.             printf("\n%i\n", expense);
  20.             break;
  21.        
  22.            
  23.         default :
  24.             putchar(ch);  //вывод знаков после замены
  25.             continue;
  26.         }
  27.      
  28.     }
  29.     printf("%d", expense); //вывод количества замен
  30.     getchar();
  31.     getchar();
  32.     return 0;
  33. }

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

  1. В начале кода подключается стандартная библиотека ввода-вывода .
  2. Затем определена функция main(), которая является точкой входа в программу.
  3. Внутри функции main() определены две переменные:
    • ch - тип данных char, используется для хранения символа, вводимого пользователем.
    • expense - тип данных int, используется для подсчета количества замен символов.
  4. Далее, в цикле while с условием (ch = getchar()) != '#', происходит чтение символа от пользователя и присваивание его переменной ch.
  5. Внутри цикла while происходит проверка, не является ли введенный символ символом '#'.
  6. Если символ не равен '#', то происходит переход к блоку switch.
  7. В блоке switch происходит проверка введенного символа и замена его на другой символ:
    • case '.': замена . на !.
    • case '!': замена ! на !!.
  8. После замены символа, происходит вывод нового символа на экран с помощью функции printf().
  9. Затем, переменная expense увеличивается на единицу.
  10. После вывода нового символа, происходит переход к следующему блоку switch.
  11. Если введенный символ не равен '.' и не равен '!', то происходит вывод введенного символа на экран с помощью функции putchar().
  12. После вывода символа, происходит продолжение цикла while с помощью команды continue.
  13. Если введенный символ равен '#', то происходит завершение цикла while и вывод количества замен на экран с помощью функции printf().
  14. После вывода количества замен, происходит чтение двух символов от пользователя с помощью функции getchar().
  15. После чтения символов, функция main() возвращает значение 0, что означает успешное завершение программы.
  16. Значение 0 возвращается из функции main() и сохраняется в переменной return.
  17. Значение переменной return используется для завершения программы.
  18. Значение переменной expense не используется в коде.
  19. В коде нет обработки ошибок.
  20. В коде нет использования других библиотек, кроме .

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


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

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

6   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы