Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
9 / 1 / 0
Регистрация: 08.12.2012
Сообщений: 34
1

Вывод массива на экран

14.09.2013, 17:39. Просмотров 1602. Ответов 9
Метки нет (Все метки)

Нужна помощь, нужно написать программу, в которую вводят число в десятичной системе, и программа преобразует его в двоичную форму, т.е. число делится на 2 и остаток должен записываться в массив, после этот массив нужно вывести. Код написал, но при выводе массива на экран, он состоит из рандомных чисел!!!

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
#include <iostream>
using namespace std;
void dvoich(int a)
{ int i,n;
  int m = 10;
  int *Array = new int[m];
  for(int i=0;i<m;i++)
  {
      int k; 
      Array[i]=[k];
  }
for (i=0; a>0 ;i++)
{
    n=a%2;
    cout<<n<<endl;
    Array[i]=n;
    a=a/2;
}
cout<< "Массив"<< Array[m]<<endl;
}
int main()
{
    setlocale(0, "");
    int a;
    cout << "Введите число: ";
    cin >> a;
    dvoich(a);
    
}
Добавлено через 41 минуту
нужно чтобы массив вывел все элементы в строку
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.09.2013, 17:39
Ответы с готовыми решениями:

Вывод массива на экран
Вывод массива на экран. # include &lt;iostream.h&gt; //подключение библиотеки void main...

Вывод на экран массива объектов
Здравствуйте! Помогите, пожалуйста, в решении проблемы. Суть в том, что не получается вывести на...

Вывод массива из файла на экран
С помощью какой команды лучше вывести массив из файла? вот код: int ConsiderTheValue(int*...

Вывод на экран динамического массива
Помогите с заданием Страуструпа Напишите функцию print_array10 (ostream&amp; os , int* а)...

9
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 11
14.09.2013, 17:43 2
ну незнаю попробуй deluxpf
0
39 / 39 / 24
Регистрация: 13.05.2013
Сообщений: 103
14.09.2013, 17:43 3
Laptev Alex, а для чего нужен первый цикл??
и в конце ты выводишь не весь массив, а только m-й, то есть последний, чтобы весь массив вывести надо тоже в цикле поэлементно выводить
0
9 / 1 / 0
Регистрация: 08.12.2012
Сообщений: 34
14.09.2013, 18:08  [ТС] 4
drdrink,Да, первый цикл не нужен. Если я буду выводить циклом, элементы будут друг над другом, а нужно в строку!

Добавлено через 2 минуты
nikitasuper, что за deluxpf?
0
39 / 39 / 24
Регистрация: 13.05.2013
Сообщений: 103
14.09.2013, 18:16 5
Laptev Alex, в смысле друг над другом?? так что ли?
1
0
0
1
1

а тебе надо 10011? или я тебя не так понял?
0
9 / 1 / 0
Регистрация: 08.12.2012
Сообщений: 34
14.09.2013, 18:26  [ТС] 6
drdrink,Да, именно так. Например: вводим число 12, программа делит 12 на 2 (пока не дойдет до единицы), получая остатки от деления и записывая их в массив. На деле получается:
0
0
1
1
А нужно чтобы вывел 1100
0
39 / 39 / 24
Регистрация: 13.05.2013
Сообщений: 103
14.09.2013, 18:28 7
Laptev Alex, ну вот написал работает правильно, только без оформления функции, думаю сам сделаешь=)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
using namespace std;
 
int main()
{
    int a = 12, i = 0, m = 10;
    int *Ar = new int[m];
 
    for(; a > 0; i++)
    {
        Ar[i] = a%2;
        a /= 2;
    }
 
    for(int j = i-1; j >= 0; j--)
        cout << Ar[j];
    cout << "\n";
    return 0;
}
1
Модератор
Эксперт по электронике
8321 / 6174 / 828
Регистрация: 14.02.2011
Сообщений: 21,452
14.09.2013, 18:35 8
Laptev Alex,
ну ты и накрутил
вот твоя функция для вывода 32 разрядов (столько в int)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void dvoich(unsigned int a)
{ 
  int Array[32];
  for(int i=0;i<32;i++)
  {
       Array[i]=0;
  }
for (i=31; a>0 ;i--)
{
    n=a%2;
    Array[]=n;
    a=a/2;
}
 for(int i=0;i<32;i++)
  {
      cout<< Array[i];
  }
cout<<endl;
}
учти это не самый оптимальный вариант

вот то же самое
C++
1
2
3
4
5
6
7
8
void dvoich(unsigned int a)
{ 
  for(int i=31;i>=0;i--)
  {
        cout<< a&(0x1<<i);
  }
cout<<endl;
}
Добавлено через 1 минуту
Цитата Сообщение от Laptev Alex Посмотреть сообщение
На деле получается:
а кто перевод строки включил после каждой цифры?
Цитата Сообщение от Laptev Alex Посмотреть сообщение
cout<<n<<endl;
Добавлено через 4 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
вот то же самое
пардон наврал
мусору будет много
вот так правильней
C++
1
2
3
4
5
6
7
8
9
10
11
void dvoich(unsigned int a)
{ 
for(int i=31;i>=0;i--)
{
 if(a&(0x1<<i))
   cout<< "1";
  else
     cout<< "0";
}
cout<<endl;
}
1
39 / 39 / 24
Регистрация: 13.05.2013
Сообщений: 103
14.09.2013, 18:36 9
Laptev Alex, да кстати как ValeryS написал последний вариант , он намного лучше будет, чем такое дело, лучше сразу проверять с помощью маски ноль там или один, чем делить постоянно=))
0
9 / 1 / 0
Регистрация: 08.12.2012
Сообщений: 34
14.09.2013, 18:37  [ТС] 10
ValeryS,drdrink, Спасибо!
ValeryS, Это чисто для проверки
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.09.2013, 18:37

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

Вывод строкового массива на экран
Доброго времени суток Такая проблема,я хочу вывести какой-то результат , например &quot;Hello&quot;,но пишет...

Реализовать вывод массива на экран
Помогите доработать программу. Мне нужно, чтобы все значения выводились на экран. int C(int n,...

Вывод двумерного массива на экран
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;conio.h&gt; #include...

Вывод на экран элементов массива
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;iomanip&gt; #include &lt;conio.h&gt;...


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

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

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