Ввод-вывод. Замена нескольких пробелов одним. Код и блок-схема прилагаются. - 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, которое проверится 
        }

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

  1. Проверка условия: if (c == ' ').
  2. Код внутри условия:
    • ...
    • ...
    • printf( ); - выводит один пробел
  3. Код после условия:
    • putchar(c); - выводит текущее значение c
    • c = getchar(); - обновляет значение c новым вводом пользователя

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


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

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

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