Аватар для dickivs
48 / 48 / 11
Регистрация: 25.11.2011
Сообщений: 275

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

07.10.2014, 08:11. Показов 1755. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу, создающую массив из строк:
"Madam I'm Adam."
"Don't cry for me, Marge and Tina."
"Lid off daffodil."
"Red lost soldier."
"Cigar? Toss it in a can. It is so tragic."

Программа должна проверить каждую строку по очереди, вывести ее,
отметить является ли она полиндромом, знаки препинания игнорируются.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.10.2014, 08:11
Ответы с готовыми решениями:

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

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

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

6
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
07.10.2014, 08:16
****ivs, показывайте наработки.

Не по теме:

упражнения из учебников,желательно решать самостоятельно :)

0
 Аватар для dickivs
48 / 48 / 11
Регистрация: 25.11.2011
Сообщений: 275
08.10.2014, 13:28  [ТС]
Наработки следующие:
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
// 4_06_Ex.cpp : main project file.
// Программа создает массив строк, проверяет является ли 
// каждая строка полиндромом, игнорируя знаки препинания.
 
#include "stdafx.h"
#include<cstring>
 
using namespace System;
 
//bool isPolyndrome (String^ string);
 
int main(array<System::String ^> ^args)
{
    String^ str = {L"122"};
                            /*
                            L"Don't cry for me, Marge and Tina.",
                            L"Lid off a daffodil.",
                            L"Red lost soldier.",
                            L"Cigar? Toss it in a can. It is so tragic."};
                            */
    String^ str2;
 
    int first  = 0;
    int last = str->Length-1;
 
 
 
    for(int i = 0; i < str->Length; i++)
 
    {
        
        Console::Write(str[first]);
 
        str2 +=str[last];
 
        ++first;
        --last;
 
    }
 
 
    Console::WriteLine();
    Console::WriteLine(str2);
    Console::WriteLine();
        
    if(str2 == str)
        Console::WriteLine(L"Строка: {0} - полиндром.", str );
    else
        Console::WriteLine(L"Строка: {0} - не полиндром.", str );
    return 0;
}
У меня не получается в случае массива строк удалять символы пунктуации из исходной строки, хотя можно и игнорировать, также не могу написать код прохождения многомерного массива из строк.
C++
1
2
3
4
5
    array<String^>^ strgs = {L"Madam I'm adam",
                             L"Don't cry for me, Marge and Tina.",
                             L"Lid off a daffodil.",
                             L"Red lost soldier.",
                             L"Cigar? Toss it in a can. It is so tragic."};
Добавлено через 18 часов 7 минут
Не получается удалить знаки препинания в строках массива, и не могу скопировать исходный массив в обратном порядке.
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
// 4_06_Ex.cpp : main project file.
// Программа создает массив строк, проверяет является ли 
// каждая строка полиндромом, игнорируя знаки препинания.
 
#include "stdafx.h"
#include<cstring>
 
using namespace System;
 
//bool isPolyndrome (String^ string);
 
int main(array<System::String ^> ^args)
{
    array<String^>^ Str = { L"Madam I'm Adam",
                            L"Don't cry for me, Marge and Tina.",
                            L"Lid off a daffodil.",
                            L"Red lost soldier.",
                            L"Cigar? Toss it in a can. It is so tragic."};
                            
    array<String^>^ newStr = gcnew array<String^>(Str->Length);
 
 
    int i;
    int first = 0;
    int last;
    String^ nStr;
 
    for(i=0; i < Str->Length; i++)
    {
        last = Str[i]->Length;
 
        for( first = 0; first < (Str[i]->Length); first++ ){
            
            newStr[i][first] = Str[i][last];
        }
    }
    
    
    
    return 0;
}
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
09.10.2014, 00:52
Лучший ответ Сообщение было отмечено dickivs как решение

Решение

****ivs, предлагаю такой вариант:

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
int main()
{
    array <String^>^Str = { L"Madam I'm Adam.",
                            L"Don't cry for me, Marge and Tina.",
                            L"Lid off a daffodil.",
                            L"Red lost soldier.",
                            L"Cigar? Toss it in a can. It is so tragic.",
                            L"aaaabbbbccc"};
 
    for each (String^ var in Str)
        {
        int i=0,j=var->Length-1;
        while(i<j)
            {
 
            if(!Char::IsLetterOrDigit(var,i)) 
                {
                i++;
                }
            if(!Char::IsLetterOrDigit(var,j))
                {
                j--;
                }
            if(Char::ToUpper(var[i])!=Char::ToUpper(var[j])) break;
 
            else
                {
                i++;
                j--;
                }
            }
        if(i>=j)
            {
            Console::WriteLine(var);
            Console::WriteLine(" палиндром");
            }
        else
            {
            Console::WriteLine(var);
            Console::WriteLine("не палиндром");
            }
 
        }
    Console::ReadLine();
    return 0;
}
1
 Аватар для dickivs
48 / 48 / 11
Регистрация: 25.11.2011
Сообщений: 275
09.10.2014, 13:48  [ТС]
Я протестировал твой код, он помог мне решить задачу до конца, к сожелению в твоем коде он не очень корректно работает, в частности последняя строка кода является палиндромом, а программа выводит что это не полиндром, вот мой код законченная версия:
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
#include "stdafx.h"
 
using namespace System;
 
int main(array<System::String ^> ^args)
{
    
    array <String^>^Str = { L"Madam I'm Adam.",
                        L"Don't cry for me, Marge and Tina.",
                        L"Lid off a daffodil.",
                        L"Red lost soldier.",
                        L"Cigar? Toss it in a can. It is so tragic."};
    String^ s1;
    String^ s2;
 
    for each (String^ var in Str)
        {
        
        int j = var -> Length-1;
 
        for(int i = 0; i < j; i++ )
        {
            if(Char::IsLetter(var,i)){
                s1+=var[i];
                s1 = s1->ToUpper();
            }
        }
        
        for(j ; j >= 0; j--)
        {
            if(Char::IsLetter(var,j)){
                s2+=var[j];
                s2 = s2->ToUpper();
            }
        }
 
        if(s1 == s2)
            Console::Write(L"{0} - палиндром", var);
        else
            Console::Write(L"{0} - не палиндром", var);
 
        Console::WriteLine();
 
        s1 = (L"");
        s2 = (L"");
        }
 
    return 0;
}
1
 Аватар для worldown
189 / 177 / 111
Регистрация: 22.06.2009
Сообщений: 533
09.10.2014, 15:48

Не по теме:

на сколько я понял это всё по "Айвор Хортон - Visual C++ 2010. Полный курс - 2011". А так, на то и задания что бы самому их решать => обучаться.. , тут можно качнуть ответы любое задание и урок по этому учебнику (официальный источник) http://www.wrox.com/WileyCDA/W... NLOAD.html



Добавлено через 9 минут
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
// Soln4_6.cpp : main project file.
 
#include "stdafx.h"
 
using namespace System;
// This tests strings for being palindromes by extracting just the letters 
// from each string and assembling them into a new string as lowercase.
// Successive letters from either end of the new string are compared
// and if any pair does not match, the string is not a palindrome.
 
int main(array<System::String ^> ^args)
{
  array<String^>^ phrases = {L" Madam I'm Adam",
                             L" Don't cry for me, Marge and Tina",
                             L" Lid off a daffodil",
                             L" Red lost soldier",
                             L" Cigar? Toss it in a can. It is so tragic"};
  String^ letters;           // Stores handle to letters-only phrase
  bool isPalindrome;         // Indicates palindrome or not
  for each(String^ phrase in phrases)
  {
    // Extract letters and make lowercase
    letters = L"";
    for each(wchar_t ch in phrase)
      if(Char::IsLetter(ch))
        letters += Char::ToLower(ch);
 
   // Test for palindrome - compare characts from each end
   isPalindrome = true;
   for(int i = 0 ; i<letters->Length/2 ; i++)
      if(letters[i] != letters[letters->Length-i-1])
      {
        isPalindrome = false;
        break;
      }
    Console::WriteLine(L"\"" + phrase + L"\" " 
                 + (isPalindrome ? "is" : "is not") + L" a palindrome.");
  }
 
  return 0;
}
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
09.10.2014, 17:51
****ivs, спасибо за внимательность,действительно надо было инструкции continue в оба if-a поставить,тогда должно работать как надо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.10.2014, 17:51
Помогаю со студенческими работами здесь

Определить индексы тех строк символьной матрицы, которые являются палиндромами
Дан символьный массив A элементами которого являются строчные русские буквы. Определить индексы тех строк массива, которые являются...

Вывести все простые числа в заданном диапазоне, которые являются палиндромами
Напишите программу , которая выводит все простые числа , которые являются палиндромами ( то есть имеют симметричную запись в десятичной...

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

Дано три целых трехзначных числа. Вывести те из них, которые являются палиндромами в порядке их следования
Дано три целых трехзначных числа. Вывести те из них, которые являются палиндромами в порядке их следования. Полиндромом называется...

Двумерный массив. Вывести элементы, которые являются общими для всех строк
Вывести элементы которые являются общими для всех строк.


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

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

Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru