Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
zombie9988
0 / 0 / 0
Регистрация: 25.02.2017
Сообщений: 1
#1

Является ли слово палиндромом, ошибка в заполнении массива - C++

25.02.2017, 20:33. Просмотров 109. Ответов 3
Метки нет (Все метки)

Проблема заключается во втором массиве prov, никак не получается его нормально заполнить, постоянно в конце добавляются какие-то символы, можете посмотреть и сказать что не так. Программа в итоге заключается в проверке слов, могут ли они читаться задом наперед также как и нормально.

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
#include "stdafx.h"
#include "locale.h"
#include <iostream>
 
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    char slovo[80], prov[80]; 
    cin >> slovo;
    int t=0, i=0, a;
    do
    {
        t++;
    } while (slovo[t] != '\0'); 
    a = t;
    t = a - 1;
    do
    {
        prov[i] = slovo[t];
        i++;
        t--;
    } while (t != -1);   
    t = 0;
    cout << prov << "\n";
    do
    {
        t++;
    } while (slovo[t] == prov[t]); 
    if(t==a) 
    {
        cout << "Верно";
    }else
    {
        cout << "Неверно";
    }
    system("pause");
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2017, 20:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Является ли слово палиндромом, ошибка в заполнении массива (C++):

Дано слово, состоящее только из строчных латинских букв. Проверьте, является ли это слово палиндромом. - C++
Дано слово, состоящее только из строчных латинских букв. Проверьте, является ли это слово палиндромом. Выведите YES или NO. Ввод...

Является ли введённое слово с клавиатуры слово палиндромом - C++
С помощью рекурсивной функции выяснить является ли введённое слово с клавиатуры слово палиндромом.

Определить, является ли слово палиндромом - C++
Подскажите в чем проблема. Программа, которая определяет является ли слово палиндромом. #include &lt;stdio.h&gt; #include &lt;string.h&gt; ...

Строки. Является ли слово палиндромом - C++
Дана строка является ли слово полендром

Является ли это слово палиндромом. - C++
Дано слово, состоящее только из строчных латинских букв. Проверьте, является ли это слово палиндромом. Выведите YES или NO. Ввод...

Проверить является ли слово палиндромом - C++
Символьная строка содержит одно слово. Проверить, будет ли оно читаться одинаково справа налево и слева направо (т.е. является ли оно...

3
no swear
115 / 95 / 34
Регистрация: 01.07.2016
Сообщений: 582
Завершенные тесты: 1
25.02.2017, 20:48 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <bits/stdc++.h>
using namespace std;
int main()
{
    setlocale(LC_ALL,"rus");
    string s;
    cin >> s;
    int lens = s.length();
    bool f = true;
    for(int i=0;i<=lens/2;i++)
        if(s[i]!=s[lens-1-i])
        {
            f = false;
            break;
        }
    if(f)
        cout << "Слово является полиндромом";
    else
        cout << "Слово неявляется полиндромом";
}
0
zss
Модератор
Эксперт С++
6516 / 6078 / 2001
Регистрация: 18.12.2011
Сообщений: 15,792
Завершенные тесты: 1
25.02.2017, 21:07 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
zombie9988, В конце prov нет терминального нуля, инициализируйте его весь нулями:
C++
1
char slovo[80], prov[80]={0};
1
no swear
115 / 95 / 34
Регистрация: 01.07.2016
Сообщений: 582
Завершенные тесты: 1
25.02.2017, 21:08 #4
Попробуй так
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
#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    char slovo[80], prov[80];
 
    cin >> slovo;
    int t=0, i=0, a;
    do
    {
        t++;
    } while (slovo[t] != '\0');
    a = t;
    t = a - 1;
    do
    {
        prov[i] = slovo[t];
        i++;
        t--;
    } while (t != -1);
    t = 0;
 
    for(int j=0;j<i;j++)
        cout << prov[j];
 
    cout << endl;
 
    do
    {
        t++;
    } while (slovo[t] == prov[t]);
    if(t==a)
    {
        cout << "Верно";
    }else
    {
        cout << "Неверно";
    }
    return 0;
}
0
25.02.2017, 21:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2017, 21:08
Привет! Вот еще темы с ответами:

Определить, является ли слово палиндромом - C++
Дорогие форумчане! Выручайте. Завтра нужно сдать контрольную, а я только взялся. Нужно, чтобы программа при вводе слова определяла слово...

Проверить является ли заданное слово палиндромом - C++
#include &lt;iostream.h&gt; int main() {char c; cout&lt;&lt;&quot;Vvedite slovo &quot;; cin&gt;&gt;c; system(&quot;pause&quot;);} Помогите, а то что то идей нету...

Рекурсия: является ли введеное слово палиндромом? - C++
Определить, является ли введеное слово палиндромом.

Выяснить, является ли данное слово палиндромом(перевертышем) - C++
Даны три слова. Выяснить, является ли оно палиндромом(перевертышем), т.е таким, которое одинаково читается слева направо и справа налево....


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

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

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