Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
halfdead
0 / 0 / 0
Регистрация: 20.12.2015
Сообщений: 25
1

Неверно выводится симметричная строка

21.12.2015, 00:07. Просмотров 837. Ответов 15
Метки нет (Все метки)

Проблема с выводом данной программы, надо что бы программа выводила в двоичном коде там где начало кода симметрично концу 1 101 111 1001 и тд. Двоичный код у меня олд бин. Я его вывожу а оно не шарит что я хочу что бы было именно через симметрию. Симметрия через олд бин и бин работает.
C++ (Qt)
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
#include <iostream>
#include <bitset>
#include <algorithm>
using namespace std;
 
int main()
{
    int n;
    int a;
    cin>>n;
    char m[a];
    a = 1;
    int i;
    for (i=1;i<=n;i++)
    {
    string bin = bitset<8>(i).to_string(); 
    cout << bin << endl;
    string old_bin = bin;
    reverse(bin.begin(), bin.end());
 
    if (old_bin == bin)
        cout <<old_bin<<endl;
    }
    return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2015, 00:07
Ответы с готовыми решениями:

Симметричная строка через указатели
Здравствуйте. Застопорился на абсолютно элементарной задачке: Дан текст из...

Неверно выводится первый четный элемент массива
Почему-то выдает как первое четное Ноль. Подскажите - в чем ошибка? int...

Выводится null-строка
Всем привет. Есть код, преобразующий целое беззнаковое число из двоичной...

не выводится строка в Visual Studio
#include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; int main(int...

Выводится лишняя строка из файла
Здравствуйте. При выводе из файла выводится лишняя строка. Т.е. если 13 строк...

15
halfdead
0 / 0 / 0
Регистрация: 20.12.2015
Сообщений: 25
21.12.2015, 00:30  [ТС] 2
теперь выводин не симетричные коды а просто все подряд
C++ (Qt)
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
#include <iostream>
#include <bitset>
#include <algorithm>
using namespace std;
 
int main()
{
    int n;
    int a;
    cin>>n;
    char m[a];
    a = 1;
    int i;
    for (i=1;i<=n;i++)
    {
    string bin = bitset<8>(i).to_string(); 
    //cout << bin << endl;
    string old_bin = bin;
    reverse(bin.begin(), bin.end());
    if (old_bin ==bin)
        m[a]=i;
        a=a+1;
        cout<<old_bin<<endl;
    }   
    return 0;
}
0
Миниатюры
Неверно выводится симметричная строка  
halfdead
0 / 0 / 0
Регистрация: 20.12.2015
Сообщений: 25
22.12.2015, 01:16  [ТС] 3
актуально
0
Croessmah
++Ͻ
14630 / 8379 / 1582
Регистрация: 27.09.2012
Сообщений: 20,585
Записей в блоге: 2
Завершенные тесты: 1
22.12.2015, 06:58 4
C++
1
2
3
4
5
        if (old_bin == bin) {
            m[a]=i;
            a=a+1;
            cout<<old_bin<<endl;
        }
0
halfdead
0 / 0 / 0
Регистрация: 20.12.2015
Сообщений: 25
22.12.2015, 09:36  [ТС] 5
С эти выводом оно выводит все н в двоичном коде подряд, но не смотрит на условие, я же писал второй код и скрин
0
Croessmah
++Ͻ
14630 / 8379 / 1582
Регистрация: 27.09.2012
Сообщений: 20,585
Записей в блоге: 2
Завершенные тесты: 1
22.12.2015, 09:44 6
halfdead, внимательнее на мой код смотрите. Найдите два отличия!
0
halfdead
0 / 0 / 0
Регистрация: 20.12.2015
Сообщений: 25
22.12.2015, 10:14  [ТС] 7
Croessmah, от того что не стоит пробел перед двойным равно, программа не так работать не будет, если добавить вашу скобку, то ошибка, так как не парное количество скобок. С еще одной скобкой после ретурна выдает пустую строку
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 <iostream>
#include <bitset>
#include <algorithm>
using namespace std;
 
int main()
{
    int n;
    int a;
    cin>>n;
    char m[a];
    a = 1;
    int i;
    for (i=1;i<=n;i++)
    {
    string bin = bitset<8>(i).to_string(); 
    //cout << bin << endl;
    string old_bin = bin;
    reverse(bin.begin(), bin.end());
    if (old_bin == bin)
    {
        m[a]=i;
        a=a+1;
        cout<<old_bin<<endl;
    }   
    return 0;
}
}
0
Dimension
Dimension
573 / 443 / 221
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
22.12.2015, 10:57 8
у ваш че мозгов не хватает что бы нормально скобки расставить?
0
Croessmah
++Ͻ
14630 / 8379 / 1582
Регистрация: 27.09.2012
Сообщений: 20,585
Записей в блоге: 2
Завершенные тесты: 1
22.12.2015, 12:48 9
Dimension, да походу

Почитайте книжку уже.
0
halfdead
0 / 0 / 0
Регистрация: 20.12.2015
Сообщений: 25
22.12.2015, 13:44  [ТС] 10
Скобы правильно, но вывод пустая строка
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
#include <iostream>
#include <bitset>
#include <algorithm>
using namespace std;
 
int main()
{
    int n;
    int a;
    cin>>n;
    char m[a];
    a = 1;
    int i;
    for (i=1;i<=n;i++)
    {
        string bin = bitset<8>(i).to_string(); 
        string old_bin = bin;
        reverse(bin.begin(), bin.end());
        if (old_bin == bin)
        {
            m[a]=i;
            a=a+1;
            cout<<old_bin<<endl;
        }
    }   
    return 0;
}
0
Dimension
Dimension
573 / 443 / 221
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
22.12.2015, 13:53 11
Цитата Сообщение от halfdead Посмотреть сообщение
char m[a];
и че это?не считая этого у меня все выводит
0
Croessmah
++Ͻ
14630 / 8379 / 1582
Регистрация: 27.09.2012
Сообщений: 20,585
Записей в блоге: 2
Завершенные тесты: 1
22.12.2015, 13:53 12
И чему равно n? Ну и в a мусор.

P.S. char m[a]; не скомпилируется. Разве что нестандартное расширение VLA будет.
1
halfdead
0 / 0 / 0
Регистрация: 20.12.2015
Сообщений: 25
22.12.2015, 15:26  [ТС] 13
m[a] - название массива, он должен объединять все i
0
Croessmah
++Ͻ
14630 / 8379 / 1582
Регистрация: 27.09.2012
Сообщений: 20,585
Записей в блоге: 2
Завершенные тесты: 1
22.12.2015, 15:32 14
Лучший ответ Сообщение было отмечено halfdead как решение

Решение

Еще вопросы есть?
http://rextester.com/KFXUX88744
1
halfdead
0 / 0 / 0
Регистрация: 20.12.2015
Сообщений: 25
22.12.2015, 16:00  [ТС] 15
Croessmah, еще есть вопрос, программа начинает вывод с большого количества нолей, хотя число 5 тоже симетрично - 101, реально сделать что бы оно сначала начальные ноли не считало и добавило в список и начальные цифры? для этого вар использовать?
0
Croessmah
++Ͻ
14630 / 8379 / 1582
Регистрация: 27.09.2012
Сообщений: 20,585
Записей в блоге: 2
Завершенные тесты: 1
22.12.2015, 16:03 16
halfdead, почикайте тогда в строках не нужные нули, потом реверс
1
22.12.2015, 16:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2015, 16:03

Не выводится строка через cout
Ошибка вылетает на этапе выполнение метода show() , а именно вместо возраста...

Почему лишний раз выводится строка?
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;vector&gt;...

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


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

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

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