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

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

21.12.2015, 00:07. Просмотров 323. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Неверно выводится симметричная строка (C++):

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

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

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

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

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

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

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
++Ͻ
14160 / 8085 / 1513
Регистрация: 27.09.2012
Сообщений: 19,925
Записей в блоге: 3
Завершенные тесты: 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
++Ͻ
14160 / 8085 / 1513
Регистрация: 27.09.2012
Сообщений: 19,925
Записей в блоге: 3
Завершенные тесты: 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 / 442 / 221
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
22.12.2015, 10:57 #8
у ваш че мозгов не хватает что бы нормально скобки расставить?
0
Croessmah
++Ͻ
14160 / 8085 / 1513
Регистрация: 27.09.2012
Сообщений: 19,925
Записей в блоге: 3
Завершенные тесты: 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 / 442 / 221
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
22.12.2015, 13:53 #11
Цитата Сообщение от halfdead Посмотреть сообщение
char m[a];
и че это?не считая этого у меня все выводит
0
Croessmah
++Ͻ
14160 / 8085 / 1513
Регистрация: 27.09.2012
Сообщений: 19,925
Записей в блоге: 3
Завершенные тесты: 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
++Ͻ
14160 / 8085 / 1513
Регистрация: 27.09.2012
Сообщений: 19,925
Записей в блоге: 3
Завершенные тесты: 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
++Ͻ
14160 / 8085 / 1513
Регистрация: 27.09.2012
Сообщений: 19,925
Записей в блоге: 3
Завершенные тесты: 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
Привет! Вот еще темы с решениями:

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

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

Почему выводится только одна строка матрицы
#include &lt;stdafx.h&gt; #include &lt;iostream&gt; #include &lt;clocale&gt; #include &lt;ctime&gt;...

Конструктор без параметров: не выводится строка в приведенном коде
#include &quot;stdafx.h&quot; #include &quot;conio.h&quot; #include &lt;iostream&gt; using...


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

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

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