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

Посчитать количество единиц, стоящих на четных местах и количество нулей, стоящих на нечетных местах - C++

Восстановить пароль Регистрация
 
Jock109
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 21
24.03.2014, 21:37     Посчитать количество единиц, стоящих на четных местах и количество нулей, стоящих на нечетных местах #1
Дана двоичная запись числа. Посчитать количество единиц, стоящих на четных местах и количество нулей, стоящих на нечетных местах.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2014, 21:37     Посчитать количество единиц, стоящих на четных местах и количество нулей, стоящих на нечетных местах
Посмотрите здесь:

C++ В текстовом массиве, посчитать сумму длин элементов, стоящих на четных местах
C++ Вывод чисел, стоящих на четных местах, в десятичной с.с., а чисел, стоящие на нечетных местах, как вещественных с одним знаком после запятой
C++ В массиве найти количество элементов, стоящих на четных местах, удовлетворяющих условию a<ti<b, где a и b
C++ Указатели. В массиве найти количество элементов, стоящих на четных местах, удовлетворяющих условию
C++ Указатели,6. В массиве t(30), сформированном случайным образом, найти количество элементов, стоящих на четных местах, удовлетворяющих условию a<ti<b,
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Worf
42 / 42 / 6
Регистрация: 06.02.2014
Сообщений: 227
24.03.2014, 21:39     Посчитать количество единиц, стоящих на четных местах и количество нулей, стоящих на нечетных местах #2
создаёшь переменную типа char, в цикле по символу проверяешь, если единица и если номер символа делится на 2 без остатка, почти так же для нулей
Jock109
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 21
24.03.2014, 21:44  [ТС]     Посчитать количество единиц, стоящих на четных местах и количество нулей, стоящих на нечетных местах #3
Ну вроде понятно, а если у меня изначально даны числа в десятичном, а потом я перевожу в двоичную, как дальше быть ?

Пример программы
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
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <ctime>
#include <stdio.h>
#include <string.h>
#include <conio.h>
using namespace std;
 
const int n=8;
 
class Base
{
protected:
    unsigned short int arr[n];
public:
    Base(int a, int b)
    {
        srand(time(NULL));
        b++;
        for (int i=0;i<n;i++)
        {
            arr[i]=(a+rand()+rand()%(b-a));
        }
    };
    Base()
    {
        for (int i=0;i<n;i++)
        {
            arr[i]=(rand()+rand());
        }
    };
    void ShowD() // Вывод в десятичной системе
    {
        for (int i=0;i<n;i++)
        {
        cout<<arr[i]<<'\n';
        }
    };
 
    void ShowB() // Вывод в двоичной системе
    {
    int c;  
    for (int i=0;i<n;i++)
        {           
        c = arr[i];
        printf("%5d",arr[i]);
        cout<<" "; 
        for (int j=15;j>=0;j--) 
        {   
            if (((c) & 0x8000)==0)
                cout<<'0'; 
            else
                cout<<'1';
            c=c<<1;     
        }   
        cout<<"\n";
        }
    cout<<"\n";
    };
Worf
42 / 42 / 6
Регистрация: 06.02.2014
Сообщений: 227
24.03.2014, 21:46     Посчитать количество единиц, стоящих на четных местах и количество нулей, стоящих на нечетных местах #4
Цитата Сообщение от Jock109 Посмотреть сообщение
Ну вроде понятно, а если у меня изначально даны числа в десятичном, а потом я перевожу в двоичную, как дальше быть ?
А в чём проблема? Если ты переводишь в 2-ю систему, а потом цикл и т.д.
Jock109
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 21
24.03.2014, 21:50  [ТС]     Посчитать количество единиц, стоящих на четных местах и количество нулей, стоящих на нечетных местах #5
Я пытался сделать через маску. Сначала умножал на 0х008 и если 1, то увеличивал количество единиц, потом сдвигал данное число на 2 бита вправо, этим определял четность, или я мыслю неправильно?
Worf
42 / 42 / 6
Регистрация: 06.02.2014
Сообщений: 227
24.03.2014, 21:53     Посчитать количество единиц, стоящих на четных местах и количество нулей, стоящих на нечетных местах #6
Ой, к чему всё это)
Если у тебя массив, как я смотрю, то как-то так
C++
1
2
3
4
5
6
7
for(int i = 0; i < "кол-во эл-ов"; i++)
{
if(mass[i] == 1 && i mod 2 == 0)
kol1++;
if(mass[i] == 0 && i mod 2 != 0)
kol0++;
}
А если у тебя переменная, то
C++
1
2
3
4
5
6
7
for(int i = 0; i < "кол-во символов"; i++)
{
if(Text[i] == 1 && i mod 2 == 0)
kol1++;
if(Text[i] == 0 && i mod 2 != 0)
kol0++;
}
Jock109
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 21
24.03.2014, 22:09  [ТС]     Посчитать количество единиц, стоящих на четных местах и количество нулей, стоящих на нечетных местах #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    void Record()
    {
        int kol1=0; 
        int kol0=0;
        int d;
 
        for(int i=0;i<n;i++)
        {
            d = arr[i];
            if(d == 1 && i % 2 == 0)
                kol1++;
            if(d == 0 && i % 2 != 0)
                kol0++;
        }
        cout<<"Количестов единиц = "<<kol1<<endl;
        cout<<"Количество нулей = "<<kol0<<endl;
 
    };
Написал вот так, но программа выдает значения по 0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2014, 00:46     Посчитать количество единиц, стоящих на четных местах и количество нулей, стоящих на нечетных местах
Еще ссылки по теме:

Указатели. Найти количество элементов, стоящих на четных местах, удовлетворяющих условию C++
Найти сумму и количество положительных элементов массива В(13) стоящих на четных местах C++
C++ Ввести с клавиатуры массив. Найти количество отрицательных элементов стоящих на четных местах

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

Или воспользуйтесь поиском по форуму:
IrineK
Заблокирован
25.03.2014, 00:46     Посчитать количество единиц, стоящих на четных местах и количество нулей, стоящих на нечетных местах #8
Получаем строку из 0 и 1:
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>
#include <cmath>
#include <ctime>
 
using namespace std;
 
void IntToBinary (char *res, int x, int size)
{   int i = size;
    res[i] = '\0';
    while (--i>-1)
    {   res[i] = x%2 + 48;
        x /= 2;
    }
}
 
int main()
{   srand ((unsigned int) time (NULL));
    int x = rand()%100;
    int size = (int) (floor (log(1.*x) / log(2.))) + 1;
    char *res = new char [size+1];
    
    IntToBinary (res, x, size);
 
    cout<<x<< '\t'<<res;
 
    delete [] res;
    getchar();
    return 0;
}
Затем - понятно.
Yandex
Объявления
25.03.2014, 00:46     Посчитать количество единиц, стоящих на четных местах и количество нулей, стоящих на нечетных местах
Ответ Создать тему
Опции темы

Текущее время: 08:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru