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

Как мне исправить код - C++

Восстановить пароль Регистрация
 
Денис96
 Аватар для Денис96
0 / 0 / 0
Регистрация: 10.08.2011
Сообщений: 55
20.12.2012, 18:40     Как мне исправить код #1
Здравствуйте! Помогите, не могу понять, в чем проблема. Условие задачи: преобразовать последовательность, добавив найменьшее количество символов так, чтобы последовательность стала палиндромом. Т.е. frfa -> frfafrf, или, например, abcdc -> abcdcba.
Что мне нужно исправить в коде? Программа имеет ноль ошибок, но не работает.
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
#include "stdafx.h"
#include <string.h>
#include <iostream>
#include <conio.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    char *str1="absds";
    char *str2="";
    char *str3="";
    char *str4="";
    char *str5="";
    int k=strlen(str1);
    for (int i=k-1; i>0; i--)
    {
        if (str1[k-1]==str1[i])
        {
            for (int b=i-1; b>0; b--)
            {
                str3=_strrev(str1);
            }
        }
    }
        strcpy(str4, str3);
        str5=strcat(str1, str4);
        cout<<str5;
        _getch();
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
20.12.2012, 19:04     Как мне исправить код #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
{
    char str1[100] ="absds";
    char str2[100];
 
    int size = strlen(str1);
 
    strcpy(str2, str1);
    strcat(str2, _strrev(str1));
 
    cout << str2 << endl;
    _getch();
 
    return 0;
}
Добавлено через 6 минут
_strrev делает реверсию строки. И принимает в кач-ве аргумента всю строку, а не один символ. В связи с этом в твоем коде слово перевертывалось несколько раз.

Цитата Сообщение от Денис96 Посмотреть сообщение
str3=_strrev(str1);
так приравнивать нельзя.
Только с помощью strcpy
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
20.12.2012, 19:19     Как мне исправить код #3
Ksim, в другой теме.
Ksim
Сообщений: n/a
20.12.2012, 19:21     Как мне исправить код #4
подскажи в какой, я тут вообще не в теме....сижу вот на паре.нашел ваш сайт
Afflicted
20.12.2012, 19:24
  #5

Не по теме:

Нажимаешь кнопку "Создать тему" и описываешь все трудности и пр.

Денис96
 Аватар для Денис96
0 / 0 / 0
Регистрация: 10.08.2011
Сообщений: 55
20.12.2012, 19:26  [ТС]     Как мне исправить код #6
Afflicted, спасибо, но это немножко не то, тут говорится, добавить найменьшее число символов, а не просто перевернуть строку и сложить, т.е. если у меня abcb, то должно вывести abcba, а не abcbbcba
Yandex
Объявления
20.12.2012, 19:26     Как мне исправить код
Ответ Создать тему
Опции темы

Текущее время: 15:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru