Аватар для Elena)))
3 / 3 / 1
Регистрация: 11.10.2011
Сообщений: 55
1

Массив строк

20.02.2012, 22:16. Показов 578. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Помогите, пожалуйста, написать две функции... одна из которых выводит строки, в которых есть нечетные цифры, а другая удаляет из этих строк нечетные числа

их нужно вставить сюда:
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>
using namespace std;
 
const int max_kol_strok=10, max_kol_stolb=500;
 
int main()
{
 
char ns[max_kol_strok][max_kol_stolb];
 
int kol_strok;
do
{
cout<<"Vvedite kolichestvo strok ne bolee "<<max_kol_strok<<": ";
cin>>kol_strok;
if(kol_strok<0||kol_strok>max_kol_strok) 
cout<<"Error!"<<endl;
}
while(!(kol_strok>0 && kol_strok<=max_kol_strok));
 
for(int i=0; i<kol_strok; i++)
    { cout << "Vvedite " << i+1 << " stroku: ";
      cin >> ns[i]; };
          
return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.02.2012, 22:16
Ответы с готовыми решениями:

Сформировать массив строк. Удалить из него одинаковые строки. Сформировать массив строк. Удалить из него К последних строк
Сформировать массив строк. Удалить из него одинаковые строки. Сформировать массив строк. Удалить из него К последних строк.

Вводится массив строк текста с неизвестным заранее количеством строк
1)Вводится массив строк текста с неизвестным заранее количеством строк.Ввод текста заканчивается, если введенная строка текста будет равна...

Имеется текстовый файл, содержащий 20 строк. Переписать каждую из его строк в массив в том же порядке
Имеется текстовый файл, содержащий 20 строк. Переписать каждую из его строк в массив в том же порядке.

2
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
11.04.2012, 20:35 2
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <iostream>
#include <cctype>
#include <cstring>
using namespace std;
 
const int max_kol_strok = 10, max_kol_stolb = 500;
 
// ф-ция поиска и печати строк
void find(char ns[max_kol_strok][max_kol_stolb])
{
    cout << "\nStrings with odd numbers:\n";
    for(int i = 0; i < max_kol_strok; ++i)
    {
        int len = strlen(ns[i]);
        for(int j = 0; j <= len; ++j)
        {
            // проверяем, является ли символ числом, и является ли оно нечётным
            if(isdigit(ns[i][j]) && (ns[i][j] - '0') % 2)
            {
                cout << ns[i] << "\n";
                break;
            }
        }
    }
}
 
// ф-ция удаления символов
void remove(char ns[max_kol_strok][max_kol_stolb])
{
    for(int i = 0; i < max_kol_strok; ++i)
    {
        int len = strlen(ns[i]);
        for(int j = 0; j <= len; ++j)
        {
            if(isdigit(ns[i][j]) && (ns[i][j] - '0') % 2)
            {
                // сдвиг элементов в строке
                for(int k = j; k < len; ++k)
                {
                    ns[i][k] = ns[i][k + 1];
                } 
                --j;
            }
        }
    }
}
 
// функция печати всех строк
void print(char ns[max_kol_strok][max_kol_stolb], int kol_strok)
{
    for(int i = 0; i < kol_strok; ++i)
    {
        cout << ns[i] << "\n";
    }
}
 
int main()
{
 
    char ns[max_kol_strok][max_kol_stolb];
 
    int kol_strok;
    do
    {
        cout<<"Vvedite kolichestvo strok ne bolee "<<max_kol_strok<<": ";
        cin>>kol_strok;
        if(kol_strok<0||kol_strok>max_kol_strok) 
        cout<<"Error!"<<endl;
    }
    while(!(kol_strok>0 && kol_strok<=max_kol_strok));
 
    for(int i=0; i<kol_strok; i++)
    { 
        cout << "Vvedite " << i+1 << " stroku: ";
        cin >> ns[i]; 
    };
      
    find(ns); // ищем и печатаем строки с нечётными символами
    remove(ns); // удаляем нечётные символы из строк
    
    cout << "\nResult:\n";
    print(ns, kol_strok); // напечатаем результаты - для проверки
          
    return 0;
}
Громоздко малость вышло, может будут варианты лучше?
1
 Аватар для Elena)))
3 / 3 / 1
Регистрация: 11.10.2011
Сообщений: 55
11.04.2012, 20:59  [ТС] 3
Большое спасибо
А я вот так сделала...
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include<iostream>
using namespace std;
const int max_kol_strok=10, max_kol_stolb=10;
 
void str_s_nech_ciframi(char* stroka)
{
    int j=0;
    int s=0;
    while(stroka[j]!='\0') 
    {
        if(stroka[j]=='1' ||stroka[j]=='3'||stroka[j]=='5'|| stroka[j]=='7'|| stroka[j]=='9') s++;
        j++;
    }
    if(s>0) cout<<stroka<<endl;
}
 
 
void squeeze(char s1[], const char s2[])
{
int i, j, k;
for (i=0, j=0; s1[i]!='\0'; ++i)
    {
      for (k=0; s2[k]!='\0' && s1[i]!=s2[k]; ++k);
              if (s1[i]!=s2[k]) s1[j++]=s1[i];
    }
s1[j]='\0';
}
 
 
int main()
{
char a[max_kol_strok][max_kol_stolb];
char s2[]="13579";
int kol_strok;
do
{
cout<<"Vvedite kolichestvo strok ne bolee "<<max_kol_strok<<": ";
cin>>kol_strok;
if(kol_strok<0||kol_strok>max_kol_strok) cout<<"Error!"<<endl;
}
while(!(kol_strok>0 && kol_strok<=max_kol_strok));
 
for(int i=0; i<kol_strok; i++)
    { cout << "Vvedite " << i+1 << " stroku: ";
      cin >> a[i]; 
    }
      cout<<"________________________________"<<endl;
      cout<<"Vyvod strok c nechetnumi ciframi: "<<endl;
      for(int i=0; i<kol_strok; i++) 
      str_s_nech_ciframi(a[i]);
      cout<<"________________________________"<<endl;
      cout<<"Vyvod strok posle udaleniya necetnyh cifr: "<<endl;
      for(int i=0; i<kol_strok; i++) 
      { 
      squeeze(a[i], s2);
      cout<<a[i]<<endl;
      } 
return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.04.2012, 20:59
Помогаю со студенческими работами здесь

Используя функцию копирования строк, организуйте конкатенацію и копирование строк в четвертый массив, содержащий полные имена
Пожалуйста с этим заданием. Написать программу, которая описывает четыре массива. Три первых массива должны содержать имена, фамилии и...

Ввод нескольких строк или массив строк
У меня есть массив строк. Нужно ввести несколько строк, но не получается. Вот код: int main() { const int n=4; const int...

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

Добавление неодинаковых строк в массив строк
Здравствуйте! Возникла такая проблема, не могу понять как реализовать добавление в массив строк нодинаковых значений. Вот моя проба, знаю,...

Внесение строк в массив строк (не сложно)
Всем привет. Есть одна проблемка в решении задачи. Задачу я решил, но необходимо немного доделать. Прошу помощи! Заранее благодарен) ...


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

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

Новые блоги и статьи
Циклы for в Python
py-thonny 17.03.2025
Существует множество ситуаций, когда нам нужно выполнить одно и то же действие несколько раз. Цикл for в Python — настоящий рабочий конь для большинства программистов. Если вам нужно пройтись по всем. . .
Предсказание ветвлений - путь к высокопроизводи­тельному C++
NullReferenced 17.03.2025
В высокопроизводительном программировании на C++ каждый такт процессора на счету. Когда речь заходит о разработке систем с низкой задержкой — будь то высокочастотная торговля, обработка потоковых. . .
Паттерн CQRS в C#
UnmanagedCoder 17.03.2025
Создание сложных корпоративных приложений часто требует нестандартных подходов к архитектуре. Один из таких подходов — паттерн CQRS (Command Query Responsibility Segregation), предлагающий простую,. . .
Паттерн Цепочка ответственности в C#
UnmanagedCoder 17.03.2025
Цепочка ответственности — это поведенческий паттерн проектирования, который позволяет передавать запросы последовательно по цепочке потенциальных обработчиков, пока один из них не обработает запрос. . . .
Создаем микросервисы с NestJS, TCP и Typescript
run.dev 17.03.2025
NestJS — фреймворк, который значительно упрощает создание серверных приложений на Node. js. Его прелесть в том, что он комбинирует концепции ООП, функционального программирования и предлагает. . .
Гексагональная архитектура со Spring Boot
Javaican 17.03.2025
Если вы когда-нибудь сталкивались с ситуацией, когда внесение простых изменений в базу данных или пользовательский интерфейс заставляло вас переписывать весь код, то вы точно оцените элегантность. . .
Позиционировани­е Kafka Consumer и Seek-операции
Javaican 17.03.2025
Что же такое Consumer Seek в Kafka? По сути, это API-метод, который позволяет программно указать, с какой позиции (offset) Consumer должен начать или продолжить чтение данных из партиции. Без этого. . .
Python NumPy: Лучшие практики и примеры
py-thonny 17.03.2025
NumPy (Numerical Python) — одна из ключевых библиотек для научных вычислений в Python. Она превращает Python из просто удобного языка общего назначения в среду для проведения сложных математических. . .
Java Micronaut в Docker: контейнеризация с Maven и Jib
Javaican 16.03.2025
Когда речь заходит о микросервисной архитектуре на Java, фреймворк Micronaut выделяется среди конкурентов. Он создан с учётом особенностей облачных сред и контейнеров, что делает его идеальным. . .
Управление зависимостями в Java: Сравнение Spring, Guice и Dagger 2
Javaican 16.03.2025
Инъекция зависимостей (Dependency Injection, DI) — один из фундаментальных паттернов проектирования, который радикально меняет подход к созданию гибких и тестируемых Java-приложений. Суть этого. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru