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

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

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

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

30.05.2013, 17:43. Просмотров 341. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2013, 17:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверка на количество единиц (C++):

Подсчитать количество единиц в числе, кроме единиц в младших разрядах - C++
Дано натуральное число N. Определить количество единиц в цифровой записи числа, кроме единиц в младших разрядах (Пример: N=81102121, кол-во...

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

Подсчитать общее количество цифр и количество единиц в строке - C++
Вводится текст. Среди символов этого текста имеется несколько цифр. Подсчитать общее количество цифр и количество единиц в строке. Если в...

Сосчитать количество единиц - C++
Сосчитать количество единиц в двоичной записи числа i.

Найти количество островов из единиц - C++
Здравствуйте, есть задачка. Задача Острова Каждый элемент квадратной матрицы размеренности N x N равен нулю, либо единице. Найдите...

Определить количество ведущих единиц - C++
здарвствуйте все! помогите пожалуйста с заданиями по мере возможностей: 1) представить программу, позволяющую для заданного...

4
Catstail
Модератор
22838 / 11204 / 1812
Регистрация: 12.02.2012
Сообщений: 18,443
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;
}
1
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, теперь рисует смайлы да всякую ерунду в выводе количества единиц
0
Catstail
Модератор
22838 / 11204 / 1812
Регистрация: 12.02.2012
Сообщений: 18,443
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;
}
0
CatOnSide
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 63
30.05.2013, 23:23  [ТС] #5
ну мне просто нужна была функция или её алгоритм который бы я потом мог применить, в задании по нахождению количества единиц в двоичном коде шестнадцатиричного числа, все получилось, изменил параметр в выводимом значении на интовый вместо чар =)
0
30.05.2013, 23:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2013, 23:23
Привет! Вот еще темы с ответами:

Вычислить количество единиц в 3 числах - C++
Помогите с такой задачей. Программа просит ввести три целых числа. В каждом из трёх введённых чисел вычисляется количество цифр &quot;один&quot;....

Найти количество единиц в числе с 5 по 10 бит - C++
Ввести целое число A и посчитать, сколько единиц в числе с 5 по 10 бит, включая эти биты.

Подсчитать количество нулей и единиц в матрице - C++
2. Задана матрица А, состоящая из нулей и единиц. Подсчитать количество нулей и единиц в этой матрице.

Найти количество квадратов из единиц в двумерном массиве - C++
Добрый день. Я начинающий программист. Решаю задачки и вот столкнулся с такой пробл.: Почему при вводе данных: 1 - кол-во...


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

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

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