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

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

26.01.2010, 18:48. Показов 17890. Ответов 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
Эксперт С++
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
26.01.2010, 21:28
Переименуй, что ли, тему в "палиндромы"...
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
26.01.2010, 21:47
BOR1K, а че код делает
0
 Аватар для Кирюха
33 / 31 / 6
Регистрация: 10.11.2009
Сообщений: 123
26.01.2010, 21:51
Цитата Сообщение от МедведЪ Посмотреть сообщение
BOR1K, а че код делает
Палиндро́м (от греч. πάλιν — «назад, снова» и греч. δρóμος — «бег») — число (например, 404), буквосочетание, слово (например, топот, фин. saippuakauppias = продавец мыла — самое длинное употребительное слово-палиндром в мире) или текст, одинаково (или почти одинаково) читающиеся в обоих направлениях.
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
26.01.2010, 22:07
не легче ли написать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool polidrom(char s[100000]){
  int x=0;
        for(int i=0,j=strlen(s)-1;j>=strlen(s)/2,i<strlen(s)/2;j--,i++)
 
        {               
                if(s[j]==s[i])
                 x=1; 
                else
                 break;
        }       
 
        if(x)        return true;
        else    return false;}
1
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
26.01.2010, 23:38
Цитата Сообщение от МедведЪ Посмотреть сообщение
не легче ли написать
На самом деле нет, так как твой код сравнивает только первый и последний. Если они совпадают, то x становится равным 1 и все остальные сравнения не учитываются потому как x больше не меняется.
Я переписал твой код немного, должен работать, не проверял
C++
1
2
3
4
5
6
7
8
bool polidrom(char s[100000])
{
    size_t x(0), i, len(strlen(s) - 1), slen(len >> 1);
    for(i = 0; i < slen; ++i) 
        if(s[i] != s[len - i])
            return false;      
    return true;
}
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
27.01.2010, 10:03
M128K145, не понял как то если он проверяет посимвольно то если он там найдет хоть одно отличие то нафиг продолжать проверять
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
27.01.2010, 10:29
МедведЪ, хм... ты же просто при нахождении несовпадения прерываешь цикл. Но если до этого у тебя было хотя бы одно совпадение, то х = 1. И вот это условие
C++
1
2
3
4
if(x)
    return true;
else
    return false;
Всегда будет true. Только в случае когда небыло ни одного совпадения, т.е. не совпали первый и последний символы x будет равен 0 и вернется false

Добавлено через 1 минуту
Для того чтобы исправить твой код надо хотя бы так писать
C++
1
2
3
4
5
6
7
if(s[j]==s[i])
    x = 1; 
else
{
    x ^= x;
    break;
}

ЗЫ. а кто говорил что надо продолжать дальше проверять? Я не говорил
1
1 / 1 / 0
Регистрация: 19.10.2010
Сообщений: 16
01.11.2010, 08:21
Не,ну тут программа проверяет предложение на палиндромность,а как сделать,чтобы любые слова введённые с клавы проверялись на палиндромность???
0
Бродяга
 Аватар для dihlofos
315 / 269 / 56
Регистрация: 27.08.2010
Сообщений: 553
01.11.2010, 08:37
Ну так вводите с клавы и проверяйте:
C++
1
gets(src);
0
1 / 1 / 0
Регистрация: 19.10.2010
Сообщений: 16
01.11.2010, 08:49
А он говорит, что reversit: идентификатор не найден(
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
01.11.2010, 08:59
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
    
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 main(){
    char buf[1024];
    
    std::cout << "Word: ";
    std::cin >> buf;
    std::cout << "is " << ( is_it(buf) ? "" : "not " ) << "a palindrom." << std::endl;
    
    return 0;
}
1
1 / 1 / 0
Регистрация: 19.10.2010
Сообщений: 16
01.11.2010, 12:31
error C2601: is_it: недопустимые локальные определения функции
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
01.11.2010, 12:45
Цитата Сообщение от Катерина Ан Посмотреть сообщение
error C2601: is_it: недопустимые локальные определения функции
Да ну?!

Что-то Вы, барышня, явно не так делаете...
0
1 / 1 / 0
Регистрация: 19.10.2010
Сообщений: 16
01.11.2010, 13:03
Ааа,ща вроде компилируется!
Но когда я ввожу слово ,то программа мне не отвечает(((
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
01.11.2010, 13:11
Цитата Сообщение от Катерина Ан Посмотреть сообщение
Но когда я ввожу слово ,то программа мне не отвечает(
после #include <iostream> добавьте строку #include <cstdlib> а перед return 0; строку system("pause"); ну за одно и эту тему прочитайте...
0
1 / 1 / 0
Регистрация: 19.10.2010
Сообщений: 16
01.11.2010, 13:18
Всё сделала,прочитала. А программа все равно не работает (
Получается так: Word: //тут я ввожу слово нажимаю enter и всё,программа не отвечает,и клавиатура отказывается работать!
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
01.11.2010, 13:42
Цитата Сообщение от Катерина Ан Посмотреть сообщение
олучается так: Word: //тут я ввожу слово нажимаю enter и всё,программа не отвечает,и клавиатура отказывается работать!
чудеса какие... вот оно же в msvs 2008 express

давайте по пунктам:
1. создаёте новый пустой(!) проект
2. добавляете в него новый файл c++ (.cpp)
3. копируете в файл текст программы
4. добавляете две строки как на картинке
5. жмёте кнопку F5
0
1 / 1 / 0
Регистрация: 19.10.2010
Сообщений: 16
01.11.2010, 14:01
Мне и нужно было в msvs 2008.
Всё сделала по пунктам. Итог

Ошибка 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,321
01.11.2010, 14:26
BOR1K, а как будет выглядеть твой первый код на C++ VS 2008, я закоментировал строку:
#include "stdafx.h"
Компилятор ругается:
Error 1 error C2061: syntax error : identifier '_TCHAR' c:\users\администратор\documents\visual studio 2008\projects\c++\console\p612\p612\p612 .cpp 22 p612

Очень надо, заранее огромное спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.11.2010, 14:26
Помогаю со студенческими работами здесь

Не получается найти готовый, написать скрипт поиска товаров
В 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 целых чисел,считает среднее...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru