Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.94
alex 86
1 / 1 / 0
Регистрация: 05.02.2011
Сообщений: 42
#1

Перевертыш - C++

03.03.2011, 21:02. Просмотров 2195. Ответов 15
Метки нет (Все метки)

Составить программу, которая определит, является ли заданное слово перевертышем (например, "кок",
"шалаш" являются).

Вот программа:

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
#include <iostream>
#include <string> 
#include <locale>
 using namespace std;
 
 int main()
{
setlocale(LC_ALL,"rus"); 
 
 
void reversit(char []);
 
const int MAX = 80; 
char str [MAX]; 
cout << "\nВведите слово: "; 
cin.get(str,MAX);
reversit(str);
cout <<"Перевернутое слово: "; 
cout <<str <<endl;
 
return 0;
}
 
void reversit(char s [])
{
int len = strlen(s); 
for(int j = 0;j <len/2;j++) 
{
char temp = s [j]; 
s [j] = s [len-j-1]; 
s [len-j-1] = temp;
}
}
 Комментарий модератора 
Используйте теги форматирования кода!


Она переворачивает введенное слово,а как сделать чтоб она еще и выводила сообщение если слово является перевертышем (является) а если нет (не является)? Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2011, 21:02     Перевертыш
Посмотрите здесь:

Найти в строке слово-перевертыш максимальной длины - C++
Дана строка в виде предложения. Найти в ней слово-перевертыш максимальной длинны. Словом будем считать набор символов, отделенных с двух...

Не работает программма "перевертыш" - C++
Всем доброго времени суток. Пока только учусь программированию на с++ и решил написать программу в которую вводиш например &quot;приветмир&quot; а...

1C 8.x перевертыш - 1С
вывести цифры числа в обратном порядке. пример: 12345 вывод: 54321

Перевертыш - Pascal
Напишите программу для считывания отрывка из текста, перевода его на язык перевёртыш и печати переведённого варианта.На язык первёртыш...

Перевертыш числа - QBasic
Dano chislo n. Kakim obrazom mojno postroit perevertish dannogo chisla. NA PRIMER: CHISLO PEREVERTISH 3994 4993

Число перевертыш - Turbo Pascal
проверить является ли введенное число перевертышем, В основании программы запрограммировать число и в зависимости от результата функций...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
timchuchok
15 / 15 / 0
Регистрация: 21.12.2010
Сообщений: 55
03.03.2011, 21:15     Перевертыш #2
Если перевернутое слово == слову - является, в инном случае - не является!
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
03.03.2011, 21:23     Перевертыш #3
Цитата Сообщение от timchuchok Посмотреть сообщение
Если перевернутое слово == слову - является, в инном случае - не является!
Например, можно так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
 
int main()
    {
    std::string word;
 
    std::cout << "Enter a word" << std::endl;
    std::cin >> word;
 
    std::string reversed(word);
    std::reverse(reversed.begin(),reversed.end());
    if(word == reversed)
        std::cout << "Yep!" << std::endl;
    else
        std::cout << "Nah." << std::endl;
    }
alex 86
1 / 1 / 0
Регистрация: 05.02.2011
Сообщений: 42
03.03.2011, 21:25  [ТС]     Перевертыш #4
А как это выразить в функции и подставить в программу?
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
03.03.2011, 21:26     Перевертыш #5
Ma3a, Если уж на то пошло
C++
1
2
3
4
bool pol(const std::string &a)
{
    return std::equal(a.begin(), a.end(), a.rbegin());
}
alex 86
1 / 1 / 0
Регистрация: 05.02.2011
Сообщений: 42
03.03.2011, 21:45  [ТС]     Перевертыш #6
а можно более доступно как нибудь сделать,просто препод обьяснял как на примере который показан выше, если принесу с другое решение то капец
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
03.03.2011, 21:50     Перевертыш #7
Если на вашем примере, то достаточно запомнить исходную и перевернутую строку, ну и потом что-то в стиле
C++
1
2
3
4
if(strcmp(str,str_reversed) == 0)
    std::cout << "Is palindrome.";
else
    std::cout << "Not a palindrome.";
Ну или же свою функцию написать, чтобы лишний раз не копировать строку. Получится что-то вроде

C++
1
2
3
4
5
6
7
bool isPalindrome(char (&str)[MAX])
    {
    for(int length = strlen(str), i = 0; i < length / 2; ++i)
        if(str[i] != str[length - i - 1])
            return false;
    return true;
    }
alex 86
1 / 1 / 0
Регистрация: 05.02.2011
Сообщений: 42
03.03.2011, 21:58  [ТС]     Перевертыш #8
компилятор ругается : ( error C2065: 'str_reversed' : undeclared identifier) необъявленный идентификатор говорит
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
03.03.2011, 22:09     Перевертыш #9
Естественно необъявленный, я же просто набросок сделал
Попробуйте ту функцию, что я написал, думаю, что к вашему примеру это подойдет.
alex 86
1 / 1 / 0
Регистрация: 05.02.2011
Сообщений: 42
03.03.2011, 22:09  [ТС]     Перевертыш #10
во втором случае ( error C2065: 'MAX' : undeclared identifier)необъявленный идентификатор говорит, хотя MAX же обявлен
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
03.03.2011, 22:11     Перевертыш #11
C++
1
const int MAX = 80;
Вынесите описание за функцию main.
alex 86
1 / 1 / 0
Регистрация: 05.02.2011
Сообщений: 42
03.03.2011, 22:24  [ТС]     Перевертыш #12
чет у меня нечего не получается
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
03.03.2011, 22:39     Перевертыш #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
 
const int MAX = 80; 
 
bool isPalindrome(char (&str)[MAX])
    {
    for(int length = strlen(str), i = 0; i < length / 2; ++i)
        if(str[i] != str[length - i - 1])
            return false;
    return true;
    }
 
int main()
    {
    char word[MAX];
 
    std::cout << "Enter a word" << std::endl;
    gets(word);
    std::cout << isPalindrome(word) << std::endl;
    }
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
04.03.2011, 03:50     Перевертыш #14
(&str)[MAX] - что это за извращение?

C
1
2
3
4
5
6
7
8
9
10
int IsPolindrom(char *str)
{
   size_t i, j, length;
 
   length = strlen(str);
   for (i = 0, j = length-1; i < j; i++, j--)
      if (str[i] != str[j])
         return 0;
   return 1;
}
alex 86
1 / 1 / 0
Регистрация: 05.02.2011
Сообщений: 42
04.03.2011, 08:22  [ТС]     Перевертыш #15
Еще больше запутали!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2012, 10:34     Перевертыш
Еще ссылки по теме:

Слово-перевертыш - Visual Basic
Здравствуйте, помогите составить код программы, чтобы если, например, ввести слово &quot;Ручка&quot;, мне вышло слово &quot;акчур&quot;

Слово - перевертыш - Pascal
К примеру, есть слово ШАЛАШ и надо определить, является ли оно перевертышем или нет. Мою программу на Паскале и блок - схему раскритиковали...

Слово перевертыш - Pascal ABC
Дано слово определить является ли оно перевертышем Заранее благодарю!

слово-перевертыш - Pascal
Определить, является ли заданное слово &quot;перевёртышем&quot; (слово называется &quot;перевёртышем&quot;, если совпадает с собой после...


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

Или воспользуйтесь поиском по форуму:
Temikk2
2 / 2 / 0
Регистрация: 12.12.2011
Сообщений: 128
05.01.2012, 10:34     Перевертыш #16
Подскажете что за бида. Вел верхний код, вожу слово а оно не чо не переворачивает. Что нужно изменить? Что добавить?
Yandex
Объявления
05.01.2012, 10:34     Перевертыш
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru