Ввод-вывод. Замена нескольких пробелов одним. Код и блок-схема прилагаются. - C (СИ)
Формулировка задачи:
Учу С по Кернигану и Ричи. Упражнение 1-7. Напишите программу, которая копирует ввод на вывод, заменяя при этом каждую последовательность из одного или более пробелов на один пробел.
Составил блок-схему алгоритма и код, но программа не работает. Помогите, пожалуйста, найти ошибку. Заранее спасибо.
Подскажите, пожалуйста, где ошибка (не писать, что в ДНК ) - в алгоритме или только в его реализации? Как исправить?
#include<stdio.h>
int main() {
int c;
c=getchar();
while(c != '.'){
if (c=' ') {
c=getchar();
while(c=' ') c=getchar();
printf(" ");
putchar(c);
c=getchar();
}
if (c != ' '){
putchar(c);
c=getchar();
}
}
return 0;
}Решение задачи: «Ввод-вывод. Замена нескольких пробелов одним. Код и блок-схема прилагаются.»
textual
Листинг программы
if (c == ' ') {.... //код
...
...printf(" ");
}
putchar(c);
c = getchar(); // создал новое значение c, которое проверится
}
Объяснение кода листинга программы
- Проверка условия:
if (c == ' '). - Код внутри условия:
......printf();- выводит один пробел
- Код после условия:
putchar(c);- выводит текущее значениеcc = getchar();- обновляет значениеcновым вводом пользователя