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

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

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

Мусор в массиве - C++

16.01.2014, 01:17. Просмотров 895. Ответов 21
Метки нет (Все метки)

Задание: Подсчитать количество ненулевых разрядов в двоичной записи заданного натурального числа.
Например в числе 13210 = 100001002 - 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "conio.h"
#include "stdio.h"
#include "math.h"
#include "stdlib.h"
 
void GetBit (int n, int mas[]) {
    for (int i=1;n>=1;i++){
      mas[31-i]=n%2;
      n/=2;
    }
}
void ClearArray (int mas[]) {
    for (int i=0;i<31; i++) {
        mas[i]=0;
    }
}
 
int Count (int c,int mas[]) {
    for (int i=0;i<31; i++) {
        if (mas[i]==1) {c++;}
    }
    return c;
}
 
int main()
{
   int x,n,a,b,c,i;
   int mas[32];
 
   ClearArray(mas);
   printf ("Vvedite chislo: \n");
   scanf("%i",&n);
   GetBit(n,mas); 
   printf ("Chislo v dvoichnom vide:\n");
 
   for (i=0;i<n;i++){
     printf ("%i",mas[i]);
     }
 
   printf ("Kolichestvo nenulevih razrjadov\n");
   printf ("%i",&c);
   
        while (!kbhit());
        return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2014, 01:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Мусор в массиве (C++):

Мусор в массиве - C++
Cчитываю значения из файла с помощью метода класса All в массив xlim void All :: InputLim() { ifstream f; f.open(&quot;2.txt&quot;,...

Мусор в массиве - C++
Не могу понять в чем проблема, выводит мусор при компиляции в массивах name, avtor, izdat. Так же крашит при попытке ввода. #include...

Мусор в массиве символов - C++
Есть класс, который при создании принимает текстовый массив, который будет являться числом, число записывается в int массив, определяется...

Мусор в массиве после использования malloc и memcpy - C++
Здравствуйте! Столкнулся со следующей проблемой. Подробнее в коде: #define BLOCK_SIZE = 16 ... unsigned int BlocksCount; ...

Мусор - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #define n 10 int main() { int a,b,i,q; scanf(&quot;%i&quot;,&amp;q); for(i=0;i&lt;q;i++) ...

Мусор в строках - C++
Привет всем!!! Я пишу помехоустойчивый декодер Витерби. Имеется граф 4x32. struct graf { int rebro0; int rebro1; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
korep
52 / 45 / 9
Регистрация: 06.01.2013
Сообщений: 597
16.01.2014, 01:41 #2
массив создайте динамическим и перед каждым добавлением доюовляйте элемент

Добавлено через 51 секунду
тогда у вас весь в массиве не останется пустых элементов, которые выдает непонято что.
0
clown_exe
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 20
16.01.2014, 01:46  [ТС] #3
Цитата Сообщение от korep Посмотреть сообщение
массив создайте динамическим и перед каждым добавлением доюовляйте элемент

Добавлено через 51 секунду
тогда у вас весь в массиве не останется пустых элементов, которые выдает непонято что.
Не могли бы поточнее указать на ошибку и её решение, потому что я уже совсем запутался.
0
korep
52 / 45 / 9
Регистрация: 06.01.2013
Сообщений: 597
16.01.2014, 01:53 #4
Даже проще вектора.
Объявление: vector<int> array;
Добавление push_back(value);
Выбор элемента at(i);
Header #include <vector.h> или в кавычках
0
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
16.01.2014, 01:56 #5
Цитата Сообщение от korep Посмотреть сообщение
Header #include <vector.h> или в кавычках
просто
C++
1
#include<vector>
0
clown_exe
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 20
16.01.2014, 01:56  [ТС] #6
Цитата Сообщение от korep Посмотреть сообщение
Даже проще вектора.
Объявление: vector<int> array;
Добавление push_back(value);
Выбор элемента at(i);
Header #include <vector.h> или в кавычках
а куда мне нужно разместить этот вектор ?
0
korep
52 / 45 / 9
Регистрация: 06.01.2013
Сообщений: 597
16.01.2014, 02:00 #7
Использовать вместо массивов. Количество записанных элементов там выдает count()

Добавлено через 1 минуту
Очистить список clear, в результате Вы сможете уменьшить и упростить код.
0
clown_exe
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 20
16.01.2014, 02:02  [ТС] #8
Цитата Сообщение от korep Посмотреть сообщение
Использовать вместо массивов. Количество записанных элементов там выдает count()

Добавлено через 1 минуту
Очистить список clear, в результате Вы сможете уменьшить и упростить код.
hm... Я извиняюсь, но не могли бы вы исправить мой код, на ваш вариант ?
0
korep
52 / 45 / 9
Регистрация: 06.01.2013
Сообщений: 597
16.01.2014, 02:02 #9
Но в функцию надо будет передавать ссылку на вектор.
0
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
16.01.2014, 02:03 #10
Цитата Сообщение от korep Посмотреть сообщение
Использовать вместо массивов. Количество записанных элементов там выдает count()
C++
1
vec.size();
0
korep
52 / 45 / 9
Регистрация: 06.01.2013
Сообщений: 597
16.01.2014, 02:05 #11
Там есть функция count это один из плюсов по отношению к динамическим массивами.
0
clown_exe
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 20
16.01.2014, 02:08  [ТС] #12
так, теперь я окончательно запутался.
0
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
16.01.2014, 02:08 #13
korep, В vector нет функции count!!!
0
clown_exe
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 20
16.01.2014, 02:16  [ТС] #14
Цитата Сообщение от cooller_94 Посмотреть сообщение
korep, В vector нет функции count!!!
Не могли бы вы исправить мой код ? а то, я совсем запутался и не могу найти ошибку
0
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
16.01.2014, 02:24 #15
clown_exe, Могу написать на С++
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2014, 02:24
Привет! Вот еще темы с ответами:

Мусор в консоли - C++
Ищу подстроку в строке и забиваю её в массив, в итоге в последнем cout выводится не то, что нужно: вместо &quot;ло в бою, очень ло&quot; выводится...

Мусор в файлах - C++
В файлы попадает какой-то мусор, в чём ошибка? #include &lt;iostream.h&gt; #include &lt;fstream.h&gt; #include &lt;string.h&gt; #include...

Мусор в переменной - C++
Здравствуйте, есть следующий фрагмент кода: void main() { setlocale(LC_ALL,&quot;&quot;); srand(time(NULL)); const int ar = 10; int...

Мусор в строке - C++
Добрый вечер, есть функция которая принимает строку типа char*, когда я передаю этой функции строку вида &quot;C:/SDL/Maps/1.area&quot;, вместо этой...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.01.2014, 02:24
Ответ Создать тему
Опции темы

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