Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 12.06.2017
Сообщений: 35

Определить индексы тех строк символьной матрицы, которые являются палиндромами

12.06.2017, 12:12. Показов 1395. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан символьный массив A[N ][N] элементами которого являются строчные русские буквы. Определить индексы тех строк массива, которые являются палиндромами.
Допустим, я кое-как понял как реализовать палиндром
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
#include "stdafx.h"
#include "stdafx.h"
#include "iostream"
#include "clocale"
#include "string."
using namespace std;
 
bool check_polindrom(string word)
{
    int len = word.length();
    for (int i = 0; i < len / 2; ++i)
    {
        if (word[i] != word[len - i - 1])
        {
            return false;
        }
    }
    return true;
}
 
int main()
{
    string str;
    cout << "Enter the word: " << endl;
    cin >> str;
    if (check_polindrom(str))
    {
        cout << "Word is polindrom." << endl;
    }
    else
    {
        cout << "Word is not polindrom" << endl;
    }
    return 0;
}
но как все это реализовать через символьный массив и со строчными русскими буквами? Может кто-нибудь помочь, всю прошлую неделю думал, до последнего сам пытался сделать, но не получается ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.06.2017, 12:12
Ответы с готовыми решениями:

Вывести строки массива строк, которые являются палиндромами
Помогоите решить чайнику 2 задачи по c++ . 2) Массив из M строк по N символов каждая. Необходимо вывести только те строки, которые...

Определить те простые числа, которые являются палиндромами
Определить т простые числа, которые являются палиндромами (одинаково записываются как слева направо, так и справа налево). только...

Определить номера тех строк целочисленной матрицы A[N,K], которые совпадают с массивом D[K], если таких строк нет - выдать соответствующее сообщение
Неправильно определяет номера строк, либо вообще определяет строки не совпадающие с D. Не могу найти ошибку, прошу помочь. Вот код: ...

9
 Аватар для anapshy
531 / 272 / 220
Регистрация: 14.11.2016
Сообщений: 1,052
12.06.2017, 13:46
Occupier, может данный пример кода тебе о чем-то скажет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
int main(void)
{
    const size_t N(4);
    char A[N][N+1]; // +1 под '\0'
    for (size_t i(0); i < N; i++)
    {
        std::cout << "Enter the word #" << i + 1 << ": ";
        std::cin.getline(A[i], N+1); // записываем до N+1 (не включительно) символов в A[i] строку
    }
    std::cout << std::endl;
    for (size_t i(0); i < N; i++)
        std::cout << "Word #" << i + 1 << ": " << A[i] << std::endl;
    std::cin.get();
    return 0;
}
0
0 / 0 / 0
Регистрация: 12.06.2017
Сообщений: 35
12.06.2017, 16:39  [ТС]
anapshy, спасибо.
с горем пополам я как то дошел то вот этого:
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
#include "stdafx.h"
#include "iostream"
#include "clocale"
#include "iomanip"
#include "malloc.h"
 
using namespace std;
 
int main()
{
 
    setlocale(LC_ALL, "Russian");
    int i, j, N, M, k = 0, v = 0;
    cout << "Строки N=";
    cin >> N;
    cout << "Столбцы M=";
    cin >> M;
    char **A = new char*[N];
    for (i = 0; i<N; i++)
        A[i] = new char[M];
    cout << "Введите элементы матрицы " << endl;
    for (i = 0; i<N; i++)
        for (j = 0; j<M; j++)
            cin >> A[i][j];
    for (i = 0; i<N; i++, cout << "\n")
    {
        for (j = 0; j<M; j++)
            cout << setw(5) << A[i][j];
    }
    cout << "Индексы строк, в которых находятся палиндромы:" << endl;
    for (i = 0; i<N; i++)
    {
        for (j = 0; j<M; j++)
        {
            if (A[i][j] == A[i][M - j - 1])
                v++;
        }
        if (v == M)
        {
            cout << i << " ";
            k++;
        }
        v = 0;
    }
    if (k == 0)
        cout << "Таких строк нет";
    cout << endl;
    delete[] A;
    system("pause");
    return 0;
}
но остался вопрос: почему при вводе русских букв программа их не читает
https://ibb.co/nOh1fv
но английские буквы читает прекрасно
https://ibb.co/kUeQ7a
В чем может быть проблема ?
0
 Аватар для anapshy
531 / 272 / 220
Регистрация: 14.11.2016
Сообщений: 1,052
12.06.2017, 17:16
Occupier, убери setlocale(); и юзай следующее:
C++
1
2
3
4
5
6
7
8
#include <iostream>
#include <windows.h>
int main(void)
{
    SetConsoleCP(1251); // Ввод в кодировке 1251
    SetConsoleOutputCP(1251); // Вывод в кодировке 1251. Изменить шрифт CMD на Lucida Console / Consolas
    return 0;
}
Чтобы изменить шрифт, запусти консоль и нажми в верхней части (на рамку за которую обычно перетаскивают) ПКМ >> Свойства >> Шрифт
0
0 / 0 / 0
Регистрация: 12.06.2017
Сообщений: 35
12.06.2017, 17:20  [ТС]
anapshy, спасибо большое, можно еще вопрос, можно ли как то избавится от указателя, по-другому я как-то не могу ?
0
 Аватар для anapshy
531 / 272 / 220
Регистрация: 14.11.2016
Сообщений: 1,052
12.06.2017, 17:24
Occupier,
Цитата Сообщение от Occupier Посмотреть сообщение
можно ли как то избавится от указателя
От какого именно? Поточнее.
И память освобождайте вот так вот:
C++
1
2
3
for (i = 0; i<N; i++)
        delete[] A[i];
delete[] A;
0
0 / 0 / 0
Регистрация: 12.06.2017
Сообщений: 35
12.06.2017, 17:26  [ТС]
anapshy,
Цитата Сообщение от Occupier Посмотреть сообщение
C++
1
char **A = new char*[N];
0
 Аватар для anapshy
531 / 272 / 220
Регистрация: 14.11.2016
Сообщений: 1,052
12.06.2017, 18:12
Occupier, Occupier, если N & M будут константами - да, можно.
0
0 / 0 / 0
Регистрация: 12.06.2017
Сообщений: 35
12.06.2017, 18:13  [ТС]
anapshy, еще раз, огромное спасибо
0
 Аватар для anapshy
531 / 272 / 220
Регистрация: 14.11.2016
Сообщений: 1,052
12.06.2017, 18:23
Occupier,
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
#include <iostream>
#include <iomanip>
#include <Windows.h>
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    const int N(4), M(4);
    int k = 0, v = 0;
    char A[N][M + 1];
    std::cout << "Введите элементы матрицы: " << std::endl;
    for (int i = 0; i < N; i++)
    {
        std::cout << "#" << i + 1 << ": ";
        std::cin.getline(A[i], M + 1);
    }
    for (int i = 0; i < N; i++, std::cout << std::endl)
        for (int j = 0; j < M; j++)
            std::cout << std::setw(5) << A[i][j];
    std::cout << "Индексы строк, в которых находятся палиндромы:" << std::endl;
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < M; j++)
            if (A[i][j] == A[i][M - j - 1])
                v++;
        if (v == M)
        {
            std::cout << i+1 << " ";
            k++;
        }
        v = 0;
    }
    if (k == 0)
        std::cout << "Таких строк нет";
    std::cout << std::endl;
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.06.2017, 18:23
Помогаю со студенческими работами здесь

Вычислить индексы и минимальное значение только тех сумм элементов массива, которые являются простыми числами.
Вычислить индексы и минимальное значение только тех сумм элементов массива (a1 + a2, a2 + a3, ..., an-1 + an), которые являются простыми...

Определить номера тех строк матрицы, которые содержат длины сторон, не допускающие построение треугольника
Задана матрица А с 3 столбцами и 25 строками. Каждая строка матрицы содержит длины сторон одного из 25 треугольников. Определить номера...

Определить количество элементов массива, которые имеют четные индексы и являются кратными 3
Дан одномерный числовой массив. Определить количество элементов этого массива, которые имеют четные индексы и являются кратными 3, а также...

Найти количество подстрок четной длины, которые являются палиндромами
Четный палиндром Подстрокой строки называется любая непустая последовательность символов в строке. Палиндромом называется строка, которая...

Получить все меньшие 100 натуральные числа,которые являются палиндромами
задача-Получить все меньшие 100 натуральные числа,которые являются палиндромами как в десятичной,так и в двоичной системах. - Вот сделала...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru