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

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

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

Проверка на количество единиц - C++

30.05.2013, 17:43. Просмотров 320. Ответов 4
Метки нет (Все метки)

Как посимвольно проверить вводимое число на количество единиц?
допустим ввожу число из 16 символов и в функции func буду проверять проходя по кажому символу есть ли в нем единицы

C++
1
2
3
4
5
6
7
8
void main()
{
int ch[16]
cout << "Введите число\n\n";
cin >> hex >> ch;
ch2=func(ch);
cout<<hex<<"Количество единиц в числе:"<<ch2;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2013, 17:43     Проверка на количество единиц
Посмотрите здесь:

Сосчитать количество единиц C++
Подсчитать количество единиц в числе, кроме единиц в младших разрядах C++
Определить количество ведущих единиц C++
C++ Вычислить количество единиц в 3 числах
C++ Посчитать количество единиц, стоящих на четных местах и количество нулей, стоящих на нечетных местах
C++ Составить последовательность из нулей и единиц без соседних единиц
C++ Найти количество островов из единиц
C++ Почему не показывается количество единиц при компиляции? в числе 017 их 4(1111)
C++ Найти количество квадратов из единиц в двумерном массиве
C++ Подсчитать количество нулей и единиц в матрице
C++ Подсчитать количество единиц и вывести их отдельной матрицей в конце
C++ Подсчитать количество единиц в группах с нечетным количеством символов (объяснить программу)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
22309 / 10714 / 1742
Регистрация: 12.02.2012
Сообщений: 17,791
30.05.2013, 17:50     Проверка на количество единиц #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
#include <iostream.h>
#include <string.h>
 
int uniCount(char *s)
{
    int i,c=0;
    for (i=0; i < strlen(s); i++) 
        if (*(s+i) == '1') c++;
    return c;
}
 
int main(int argc, char* argv[])
{
 
    char SS[100];
 
    cout << "Enter number : ";
    cin >> SS;
 
    cout << "Number of units is " << uniCount(SS) << endl;
    
    return 0;
}
CatOnSide
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 63
30.05.2013, 18:59  [ТС]     Проверка на количество единиц #3
спасибо)

Добавлено через 11 минут
Только все равно не показывает =(


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
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
void logfunc()
{
char ch[16];
char ch2;
cout << "Введите число\n\n";
cin >> hex >> ch;
ch2=uniCount(ch);
cout<<hex<<"Количество единиц в двоичном коде:"<<ch2;
}
 
int uniCount(char *s)
{
    int i,c=0;
    for (i=0; i < strlen(s); i++) 
        if (*(s+i) == '1') c++;
        if (*(s+i) == '2') c++;
        if (*(s+i) == '3') c=c+2;
        if (*(s+i) == '4') c++;
        if (*(s+i) == '5') c=c+2;
        if (*(s+i) == '6') c=c+2;
        if (*(s+i) == '7') c=c+3;
        if (*(s+i) == '8') c++;
        if (*(s+i) == '9') c=c+2;
        if (*(s+i) == 'A') c=c+2;
        if (*(s+i) == 'B') c=c+3;
        if (*(s+i) == 'C') c=c+2;
        if (*(s+i) == 'D') c=c+3;
        if (*(s+i) == 'E') c=c+3;
        if (*(s+i) == 'F') c=c+4;
        if (*(s+i) == '0') c=c+0;
    return c;
}
Добавлено через 7 минут
P.S. попробовал изменить тип переменной i на unsigned int, теперь рисует смайлы да всякую ерунду в выводе количества единиц
Catstail
Модератор
22309 / 10714 / 1742
Регистрация: 12.02.2012
Сообщений: 17,791
30.05.2013, 19:21     Проверка на количество единиц #4
Ты бы хоть ВНЯТНО написал, ЧТО тебе нужно... Число единиц в двоичном коде числа? ГДЕ ЭТО НАПИСАНО?

Вот:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream.h>
 
int uniCounter (int n)
{
    int c=0;
    while (1)
    {
        if (n == 0) break;
        if ((n % 2) == 1) c++;
        n=n/2;
    }
    return c;
}
 
int main(int argc, char* argv[])
{
    int k;
    cout << "Enter number : ";
    cin >> k;
    cout << "Number of units in binary presentation is " << uniCounter(k)<< endl;
 
    return 0;
}
CatOnSide
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 63
30.05.2013, 23:23  [ТС]     Проверка на количество единиц #5
ну мне просто нужна была функция или её алгоритм который бы я потом мог применить, в задании по нахождению количества единиц в двоичном коде шестнадцатиричного числа, все получилось, изменил параметр в выводимом значении на интовый вместо чар =)
Yandex
Объявления
30.05.2013, 23:23     Проверка на количество единиц
Ответ Создать тему
Опции темы

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