0 / 0 / 0
Регистрация: 31.05.2015
Сообщений: 48
1

Заменить в тексте все нули единицами, а единицы нулями

31.05.2015, 20:15. Показов 7639. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Заменить в тексте все нули единицами, а единицы нулями, начиная с позиции, в которой количество предшествующих.

У меня есть начало кода, задаю массив, а вот код для замены единиц нулями и наоборот не могу дописать, не знаю как реализовать это из за того что нужны определенные позиции как написано в задании.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "stdafx.h"
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <clocale>
#include<cstring>
#define A 10
#define B 50
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    char str[A][B], s[B], s1[B];
    int i, j, a, b, ind,len,k ;
    char *start, *end, t;
    cout << "Введите кол-во строк, которое вы собираетесь написать: ";
    do
    {
        (cin >> k).get();
        if (k < A) break;
        else cout << "Кол-во строк не должно превышать 10-ти. Повторите попытку\n";
    } while (k > A);
 
 
    cout << "Введите строки(кол-во символов должно быть меньше 50):\n";
    for (i = 0; i < k; i++)
    {
        gets_s(str[i]);
    }
 
    cout << "Вы ввели:" << endl;
помогите дописать пожалуйста.

Добавлено через 6 часов 13 минут
хелп
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2015, 20:15
Ответы с готовыми решениями:

Составить процедуру, замещающую в исходной строке все единицы нулями и все нули единицами.
Составить процедуру, замещающую в исходной строке все единицы нулями и все нули единицами. Замена...

Программа, заменяющая в исходной строке символов все единицы нулями и все нули единицами
Помогите с программой. Составить программу, заменяющую в исходной строке символов все единицы...

Скопировать в новый текстовый файл все символы исходного, заменив все нули на единицы, а единицы на нули
Дан текстовый файл f. Переписать в файл g все компоненты файла f с заменой символа 0 на символ 1 и...

Заполнить массив единицами и минус единицами и поменять единицы и минус единицы местами
Помогите решить задачу,не могу понять как заполнить массив единицами и минус единицами в случайном...

5
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
31.05.2015, 22:01 2
Цитата Сообщение от RoenEr Посмотреть сообщение
начиная с позиции, в которой количество предшествующих.
не понятно что это значит
пробегитесь по тексту и проверьте ,если текущий символ единица то поменяйте его на ноль ,если ноль то на единицу
0
0 / 0 / 0
Регистрация: 31.05.2015
Сообщений: 48
31.05.2015, 22:36  [ТС] 3
Задание звучит так:
"Заменить в тексте все нули единицами, а единицы нулями, начиная с позиции, в которой количество предшествующих единиц превысит количество предшествующих нулей на 1."
и я вот не могу никак алгоритм придумать и написать что бы он их так менял.
0
196 / 197 / 120
Регистрация: 27.05.2011
Сообщений: 545
31.05.2015, 22:43 4
Лучший ответ Сообщение было отмечено RoenEr как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
 
int main() {
    using namespace std;
    string text;
    getline(cin, text);
    for (size_t i = 0; i < text.length(); i++) {
        if (text[i] == '1') {
            text[i] = '0';
        } else if (text[i] == '0') {
            text[i] = '1';
        }
    }
    cout << text << endl;
}
Добавлено через 3 минуты
Цитата Сообщение от RoenEr Посмотреть сообщение
начиная с позиции, в которой количество предшествующих единиц превысит количество предшествующих нулей на 1."
Тогда как-то так
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <string>
 
int main() {
    using namespace std;
    string text;
    getline(cin, text);
    int count0 = 0, count1 = 0;
    bool flag = false;
    for (size_t i = 0; i < text.length(); i++) {
        if (text[i] == '1') {
            if (count1++ >= count0) {
                flag = true;
            }
            if (flag) {
                text[i] = '0';
            }
        } else if (text[i] == '0') {
            count0++;
            if (flag) {
                text[i] = '0';
            }
        }
    }
    cout << text << endl;
}
1
0 / 0 / 0
Регистрация: 31.05.2015
Сообщений: 48
31.05.2015, 23:06  [ТС] 5
mymedia,
а не подскажешь как это впихнуть в мой код который я сначала писал? с массивом. а то что то я потерялся, 1-ый раз такой стиль вижу
0
196 / 197 / 120
Регистрация: 27.05.2011
Сообщений: 545
01.06.2015, 12:30 6
Ну, по большому счёту в данной задаче можно тип string рассматривать как некий массив символов — строка. Чтобы определить количество элементов в нём, нужно вызвать функцию length.
Функция getline, прочитывает с потока ввода строчку до '\n' (по умолчанию)
Подробнее про std::string и операции над ним можно почитать здесь.
У библиотечного типа string есть ряд преимуществ: сложно переполнить его буфер.
Так, например, у вас в программе используется небезопасная функция gets. Что, если будет введена строка длиннее 49 символов? Программа не сможет в этом случае нормально завершиться.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2015, 12:30
Помогаю со студенческими работами здесь

Заменить нулями максимальные элементы массива и единицами остальные
Нужно исправить ошибки и чуток доработать, пожалуйста Даны целые числа а1 … а100. Получить...

Заменить в массиве единицы нулями и наоборот
Дан массив А из 100 элементов, состоящий из 0 и 1. Заменить единицы нулями и наоборот.

Переставить элементы массива так, чтобы сначала располагались все нули, затем все двойки и, наконец, все единицы
Добрый день ! У меня к вам просьба. Помогите решить задачу по с++ начинающему чайнику. :wall:...

Отсортировать массив из 0 и 1 так, чтобы все нули находились в начале, а все единицы - в конце массива
Тема: Функции 1. Дано одномерный массив, заполненный 0 и 1 в произвольном порядке. Отсортировать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru