Расстановка функций вывода - C (СИ)
Формулировка задачи:
Меня интересует, как мне расположить функции вывода так, что бы количество замен выводилось не по окончанию цикла, а после каждого вывода знаков после замены так, что бы эти 2 значения не налазили друг на друга? А то у меня получается что то вида q0w0.1!!2 и тд, вертикальный вывод в расчет не брать
#include <stdio.h> int main(void) { char ch; int expense = 0; while((ch = getchar()) != '#') { if(ch != '#') switch(ch) { case '.': //замена "." на "!" printf("!"); expense++; break; case '!': // замена "!" на "!!" printf("!!"); expense++; break; default : putchar(ch); //вывод знаков после замены continue; } } printf("%d", expense); //вывод количества замен getchar(); getchar(); return 0; }
Решение задачи: «Расстановка функций вывода»
textual
Листинг программы
#include <stdio.h> int main(void) { char ch; int expense = 0; while((ch = getchar()) != '#') { if(ch != '#') switch(ch) { case '.': //замена "." на "!" printf("!"); expense++; break; case '!': // замена "!" на "!!" printf("!!"); expense++; printf("\n%i\n", expense); break; default : putchar(ch); //вывод знаков после замены continue; } } printf("%d", expense); //вывод количества замен getchar(); getchar(); return 0; }
Объяснение кода листинга программы
- В начале кода подключается стандартная библиотека ввода-вывода
. - Затем определена функция main(), которая является точкой входа в программу.
- Внутри функции main() определены две переменные:
- ch - тип данных char, используется для хранения символа, вводимого пользователем.
- expense - тип данных int, используется для подсчета количества замен символов.
- Далее, в цикле while с условием (ch = getchar()) != '#', происходит чтение символа от пользователя и присваивание его переменной ch.
- Внутри цикла while происходит проверка, не является ли введенный символ символом '#'.
- Если символ не равен '#', то происходит переход к блоку switch.
- В блоке switch происходит проверка введенного символа и замена его на другой символ:
- case '.': замена
.
на!
. - case '!': замена
!
на!!
.
- case '.': замена
- После замены символа, происходит вывод нового символа на экран с помощью функции printf().
- Затем, переменная expense увеличивается на единицу.
- После вывода нового символа, происходит переход к следующему блоку switch.
- Если введенный символ не равен '.' и не равен '!', то происходит вывод введенного символа на экран с помощью функции putchar().
- После вывода символа, происходит продолжение цикла while с помощью команды continue.
- Если введенный символ равен '#', то происходит завершение цикла while и вывод количества замен на экран с помощью функции printf().
- После вывода количества замен, происходит чтение двух символов от пользователя с помощью функции getchar().
- После чтения символов, функция main() возвращает значение 0, что означает успешное завершение программы.
- Значение 0 возвращается из функции main() и сохраняется в переменной return.
- Значение переменной return используется для завершения программы.
- Значение переменной expense не используется в коде.
- В коде нет обработки ошибок.
- В коде нет использования других библиотек, кроме
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д