Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.65/96: Рейтинг темы: голосов - 96, средняя оценка - 4.65
 Аватар для BOR1K
14 / 14 / 3
Регистрация: 19.09.2009
Сообщений: 289

Готовый код поиска палиндромов

26.01.2010, 18:48. Показов 18486. Ответов 46
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот сделал задачку, мб кому пригодится)


Если кому решение покажется не рациональным, поправьте.

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
#include "stdafx.h"
#include "conio.h"
#include "string.h"
#include <iostream>
using namespace std;
 
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;
}
 
}
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    char src[80]={"a roza upala na lapu azora"};
    char dest[80];
    char rvs[80];
    int i, j;
  
    printf("wait...");
    if((src, sizeof(src), stdin) == NULL || *src == '\n')
        
        return 1;
    
    for(i = j = 0; src[i] != '\0'; i++)
        if(src[i] != ' ')
        { dest[j++] = src[i];
    dest[j] = '\0';}
 
 
    
 //printf("Getted uyhgf %s\n", src);
    //strcmp(src,dest);
     
strncpy(rvs,dest,70);
 
 
reversit(rvs);
 
  if(strcmp(rvs,dest)==0)  printf("KANAET \n");
    //strcmp(src,dest);
    _getch();
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.01.2010, 18:48
Ответы с готовыми решениями:

Исправить код по нахождению слов-палиндромов
Помогите исправить ошибки в задаче про проверку является ли слово оборотнем. Например maam - слово оборотень, mama - нет. #include...

Готовый код, раскрывающий суть типов переменных
(Админ оформи сам если, что.) Я начал изучать си пока мне объясняли про типы переменных решил запилить вот такую прогу. Это код ...

Ошибка в программе поиска чисел-палиндромов
Здравствуйте. Задача такая: из Memo1 найти все числа-палиндромы и вывести их в Memo2. Программа есть, но работает через раз. Помогите...

46
1 / 1 / 0
Регистрация: 19.10.2010
Сообщений: 16
01.11.2010, 14:30
Студворк — интернет-сервис помощи студентам
isaak, Вот и мне нужен КОДик на Visual c++ 2008
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12846 / 7595 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
01.11.2010, 14:31
Цитата Сообщение от Катерина Ан Посмотреть сообщение
Ошибка 1 general error c1010070: Failed to load and parse the manifest. 5 C405BAO =09B8 C:070==K9 D09;.
Понятия не имею, как Вам это удалось... Из советов разве-что
1. закрыть msvs
2. запустить заново
3. далее по пунктам ещё раз, только убедитесь, что новый проект в новой папке создаётся (там пимпа есть - "Создать каталог для решения"), ну и имя какое-нибудь новое придумайте...
Если опять никак - просто поверьте на слово, что оно работает, и несите преподу, как есть...
1
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,338
01.11.2010, 15:03
easybudda огромное спасибо, все работает, Катерина Ан последуйте совету easybudda удалите старый проект и создайте заново как вам написал easybudda, все нормально компилируется в качестве примера можете ввести6 шалаш, топот, арозаупаланалапуазора (без пробелов)
0
1 / 1 / 0
Регистрация: 19.10.2010
Сообщений: 16
01.11.2010, 15:25
У меня всё равно ошибка:

Ошибка 1 general error c1010070: Failed to load and parse the manifest. 5 C405BAO =09B8 C:070==K9 D09;.
((
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,338
01.11.2010, 15:48
Катерина на вот последовательность шагов для создания консольных приложений Visual Studio:
1) Запускаете Visual Studio 2008
2)File->New Project->Visual C++->General->Empty Project (вводите имя проекта)
3) В правом углу появляется окно Solution Explorer щелкается правой кнопкой мыши по названию далее Add New Item->C++File(.cpp) вводите имя проекта у вас должна появиться рабочая область (белого цвета) на нее вводите программный код.
P.S. В Visual Studio, 2005, 2008, 2010 примерно одинаково.
Желаю успехов!!!
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12846 / 7595 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
01.11.2010, 15:50
Катерина Ан, на всякий случай: а как Вы файл в свежесозданный проект добавляете? Правильный вариант - после создания проекта слева в solution explorer правой кнопкой щёлкаете на имени проекта, там добавить - создать новый элемент - файл с++...

Не по теме:

Ещё вариант - пишите, где живёте и когда мамы с папой дома нету, может кто на месте проблему решить вызовется.. ;)

0
1 / 1 / 0
Регистрация: 19.10.2010
Сообщений: 16
01.11.2010, 16:32
А может дело всё в том,что не используется библиотека #include "stdafx.h" ?
Препод говорил,чтобы на обязательно была!
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
01.11.2010, 16:35
Катерина Ан, если вы создаёте пустой файл консольного проекта, то её быть не должно.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12846 / 7595 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
01.11.2010, 17:09
Цитата Сообщение от Катерина Ан Посмотреть сообщение
Препод говорил...
Ну это в корне всё меняет
Создавайте консольное приложение Win32 (как на картинке)

в следующем окне сразу жмите "готово"
вставляйте в открывшееся окно вот этот текст
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
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
 
bool is_it(const char * s){
        const char * head, * tail;
        
        for ( tail = s; *tail; ++tail )
                ;
        for ( head = s, --tail; head < tail; ++head, --tail )
                if ( *head != *tail )
                        return false;
                
        return true;
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    char buf[1024];
        
    std::cout << "Word: ";
    std::cin >> buf;
    std::cout << "is " << ( is_it(buf) ? "" : "not " ) << "a palindrom." << std::endl;
 
    system("pause");
    return 0;
}
и таки снова жмите F5 - может хоть так заработает...
0
1 / 1 / 0
Регистрация: 19.10.2010
Сообщений: 16
01.11.2010, 17:15
Уррррааа! Ребятки работает!!!))
А как сделать,чтобы отдельно взятое слово в строке проверялось на палиндромность? т.к я поняла,что эта прога проверяет полностью строку на палиндромность)
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12846 / 7595 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
01.11.2010, 17:32
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Катерина Ан Посмотреть сообщение
А как сделать,чтобы отдельно взятое слово в строке проверялось на палиндромность? т.к я поняла,что эта прога проверяет полностью строку на палиндромность)
Судя по
Цитата Сообщение от easybudda Посмотреть сообщение
std::cout << "Word: ";
одно слово читает, одно и проверяет.
Вот так будет каждое слово в строке проверять
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
// console_palindroms.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <string>
#include <sstream>
#include <cstdlib>
 
bool is_it(const char * s){
        const char * head, * tail;
        
        for ( tail = s; *tail; ++tail )
                ;
        for ( head = s, --tail; head < tail; ++head, --tail )
                if ( *head != *tail )
                        return false;
                
        return true;
}
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    std::string buf;
        
    std::cout << "String: ";
    std::getline(std::cin, buf);
    std::istringstream ist(buf);
    while ( ist >> buf )
        std::cout << "\"" << buf << "\" is " << ( is_it(buf.c_str()) ? "" : "not " ) << "a palindrom." << std::endl;
 
    system("pause");
    return 0;
}
на всякий случай - точки/запятые всякие тоже нужно учитывать?
2
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,338
01.11.2010, 17:33
Огромное спасибо easybudda как правильно создавть консольное приложение
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12846 / 7595 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
01.11.2010, 18:03
Цитата Сообщение от isaak Посмотреть сообщение
как правильно создавть консольное приложение
Видимо, так, как оно скомпилируется и запустится... Хотя по моему скромному правильнее не привязываться к отдельно взятому компилятору, а писать программу строго в соответствии со стандартом. Мало того, раз это консольное приложение, то и компилировать, и запускать его лучше из консоли. К примеру самый первый мой вариант скомпилируется любым вменяемым компилятором (маргинальный борланд турбо с++ не считается), а вот со всякими stdafx.h - только мелкомягким. Первый же вариант можно было скомпилить мелкомягким cl, если открыть консоль, которая к студии прилагается ( пуск - Все программы - Microsoft Visual C++ 2008 Express Edition - Visual Studio Tools - Visual Studio 2008 Command Prompt ), перейти в папку, в которой сохранена программа, и там компилятор запустить
Code
1
2
cd \path\to\program\code
cl progname.cpp
0
1 / 1 / 0
Регистрация: 19.10.2010
Сообщений: 16
02.11.2010, 07:38
Спасибо,сё работает :-)

Добавлено через 13 часов 14 минут
Ребят,а можно ж сделать так,чтобы на экран выводились только палиндромы??? А как?
Наверно в программе прописать,что когда не палиндром,то ошибка???
0
Бродяга
 Аватар для dihlofos
315 / 269 / 56
Регистрация: 27.08.2010
Сообщений: 553
02.11.2010, 07:50
Выведет только палиндромы через пробел:
C++
1
2
3
while ( ist >> buf )
   if(is_it(buf.c_str()))
      cout<<buf<<" ";
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,338
02.11.2010, 12:38
dihlofos я сделал ваши изменения, но программа одинаково реагирует на слово, что палиндром, что не палиндром:

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
#include <iostream>
#include <string>
#include <sstream>
#include <cstdlib>
 
bool is_it(const char * s){
        const char * head, * tail;
        
        for ( tail = s; *tail; ++tail )
                ;
        for ( head = s, --tail; head < tail; ++head, --tail )
                if ( *head != *tail )
                        return false;
                
        return true;
}
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
        std::string buf;
        
        std::cout << "String: ";
        std::getline(std::cin, buf);
        std::istringstream ist(buf);
        while ( ist >> buf )
        if(is_it(buf.c_str()))
        std::cout<<buf<<" ";
        system("pause");
        return 0;
}
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12846 / 7595 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
02.11.2010, 12:48
isaak, странно, у меня всё работает:
Code
1
2
3
4
5
6
7
8
9
10
~/cpp/strings $ ./is_palindrom 
String: abc zzxzz dfgfd asdf
zzxzz dfgfd 
~/cpp/strings $ ./is_palindrom 
String: asdf
 
~/cpp/strings $ ./is_palindrom 
String: qwertytrewq
qwertytrewq 
~/cpp/strings $
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,338
02.11.2010, 13:20
easybudda Катерина Ан писала: Ребят,а можно ж сделать так,чтобы на экран выводились только палиндромы??? А как?
Наверно в программе прописать,что когда не палиндром,то ошибка???

Если слово не является палиндромом, то программа не выдает ни какую ошибку, а также завершается если слово - палиндром
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12846 / 7595 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
02.11.2010, 13:49
Цитата Сообщение от isaak Посмотреть сообщение
Если слово не является палиндромом, то программа не выдает ни какую ошибку
ну да... пару строк всего добавить надо
C++
1
2
3
4
5
6
7
8
...
if(is_it(buf.c_str()))
            std::cout<<buf<<" ";
else {
            std::cerr << "OH SHIT! IT'S NOT A PALINDROM HERE! JUST GOING DIE!" << std::endl;
            return 1;
}
...
ну или вроде того
1
1 / 1 / 0
Регистрация: 19.10.2010
Сообщений: 16
02.11.2010, 18:45
А я вот так вот доделала!

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
#include "stdafx.h"
#include <iostream>
#include <string>
#define _CRTDBG_MAP_ALLOC
#include <sstream>
#include <cstdlib>
 
 
 
bool is_it(const char * s)
{ 
    const char * head, * tail;
 
    for ( tail = s; *tail; ++tail )
        ;
    for ( head = s, --tail; head < tail; ++head, --tail )
        if ( *head != *tail )
            return false;
 
    return true;
}
 
int _tmain(int argc, _TCHAR* argv[])
{   _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
 
 
int menu = 0 ; 
 
do{
std::string buf;
 
std::cout << "String: ";
std::getline(std::cin, buf);
std::istringstream ist(buf);
while ( ist >> buf )
        if(is_it(buf.c_str()))
            std::cout<<buf<<" ";
 
 
std::cout << "Retry? 1-YES, 0-NO";
std::cin >> menu;
getchar();
 
 
 
 
}while (menu != 0);
 
return 0;
 
 
 
return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.11.2010, 18:45

Не получается найти готовый, написать скрипт поиска товаров
В javascript разбираюсь не особо, поэтому столкнулся с такой проблемой. Есть сайт с большим каталогом товаров. И вот ни как не могу найти...

Нужно написать программу для поиска палиндромов от 1 до 1 000 000 в десятичной системе счисления и двоичной одновременно
Program v1; var f:array of integer; a,b,i,k,n,g,v,m:integer; begin for i:=0 to 1000000 do begin a:=0;...

Печать. Готовый код.
Здравствуйте. Написал код печати. Печатает нормально. Линии рисует между ячейками. вообщем всё просто отлично. Но есть 1 ньюанс... у...

Дек//Готовый код
Ребят вот нашёл код дека, и его подправил для своих нужд. Но сделал одну вещь не так, надо задать может через уикл, но не знаю как. ...

отредактировать готовый код
Отредактируйте пожалуйста готовый код.ТЗ:Написать программу,коротая выводит с клавиатуры массив из 10 целых чисел,считает среднее...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru