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

Сколько цифр в числе, которые равны "а"? - C++

Восстановить пароль Регистрация
 
glushara
0 / 0 / 0
Регистрация: 20.04.2012
Сообщений: 33
26.05.2013, 21:39     Сколько цифр в числе, которые равны "а"? #1
сколько цифр в числе, которые НЕ равны а.
программа не очень правильно работает.
не могу понять почему. Гляньте.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include<stdlib.h>
int main()
{
    int n;
    int a,k,b;
    std::cout<<"vvedute chuslo a\n";
    std::cin>>a;
    std::cout<<"vvedute chuslo n\n";
    std::cin>>n;
    k=0;
    while(n!=0)
    {
               b=n%10;
               if (b!=a) k++;
               n=n/10;
               }
    std::cout<<"kolichestvo  "<<k<<"\n";
    
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
genock94
 Аватар для genock94
20 / 20 / 1
Регистрация: 16.11.2012
Сообщений: 348
26.05.2013, 21:49     Сколько цифр в числе, которые равны "а"? #2
glushara, позвольте уточнить. Пользователь вводит цифру "a". Потом пользователь вводит число "n". И в этом числе "n" надо поссчитать число цифр, не равных цифре "a"?
glushara
0 / 0 / 0
Регистрация: 20.04.2012
Сообщений: 33
26.05.2013, 21:52  [ТС]     Сколько цифр в числе, которые равны "а"? #3
Цитата Сообщение от genock94 Посмотреть сообщение
glushara, позвольте уточнить. Пользователь вводит цифру "a". Потом пользователь вводит число "n". И в этом числе "n" надо поссчитать число цифр, не равных цифре "a"?
да..именно так
genock94
 Аватар для genock94
20 / 20 / 1
Регистрация: 16.11.2012
Сообщений: 348
26.05.2013, 21:59     Сколько цифр в числе, которые равны "а"? #4
glushara,
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
// помощь.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <conio.h>
 
int main()
{
    int a,n,b,k;
 
    printf("Vvedite chislo: ");
    scanf("%d",&n);
 
    printf("Vvedite cifru: ");
    scanf("%d",&a);
    
    while (n!=0)
    {
        b=n%10;
        if (b!=a) 
            k++;
        n=n/10;
    }
 
    printf("Kolichestvo cifr, ne ravnih 'a': %d",k);
 
    getch();
    return 0;
}
Добавлено через 2 минуты
glushara, скорее всего ошибка заключалась в отсутствии инициализации переменной "k"..
glushara
0 / 0 / 0
Регистрация: 20.04.2012
Сообщений: 33
26.05.2013, 22:01  [ТС]     Сколько цифр в числе, которые равны "а"? #5
Цитата Сообщение от genock94 Посмотреть сообщение
glushara,
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
// помощь.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <conio.h>
 
int main()
{
    int a,n,b,k;
 
    printf("Vvedite chislo: ");
    scanf("%d",&n);
 
    printf("Vvedite cifru: ");
    scanf("%d",&a);
    
    while (n!=0)
    {
        b=n%10;
        if (b!=a) 
            k++;
        n=n/10;
    }
 
    printf("Kolichestvo cifr, ne ravnih 'a': %d",k);
 
    getch();
    return 0;
}
Добавлено через 2 минуты
glushara, скорее всего ошибка заключалась в отсутствии инициализации переменной "k"..

спасибо.
а не знаешь ли что не так в моей программе?
genock94
 Аватар для genock94
20 / 20 / 1
Регистрация: 16.11.2012
Сообщений: 348
26.05.2013, 22:04     Сколько цифр в числе, которые равны "а"? #6
glushara, хмм.. Скомпилировал вашу программу и резьтаты сходятся.. Как вы поняли то, что в программе ошибка?

Добавлено через 3 минуты
Кстати, главное следить за тем, чтобы число "n" не выходило за пределы своего типа.. Например я ввел число "n"=223323242355222 и число "a"=1. Результат 9, что неверно, т.к. максимальное значение числа "n"=(2^31)-1
glushara
0 / 0 / 0
Регистрация: 20.04.2012
Сообщений: 33
26.05.2013, 22:05  [ТС]     Сколько цифр в числе, которые равны "а"? #7
Цитата Сообщение от genock94 Посмотреть сообщение
glushara, хмм.. Скомпилировал вашу программу и резьтаты сходятся.. Как вы поняли то, что в программе ошибка?
например
цифра - 4
число - 45555555555
выводит - 9
должно - 10

все...я ошибку понял...не обратил внимания на тип.))
genock94
 Аватар для genock94
20 / 20 / 1
Регистрация: 16.11.2012
Сообщений: 348
26.05.2013, 22:07     Сколько цифр в числе, которые равны "а"? #8
glushara, рад, что проблема решена
glushara
0 / 0 / 0
Регистрация: 20.04.2012
Сообщений: 33
26.05.2013, 22:11  [ТС]     Сколько цифр в числе, которые равны "а"? #9
Цитата Сообщение от genock94 Посмотреть сообщение
glushara, рад, что проблема решена
может подскажешь.
нужно в этой же программе проверить условие
правда ли что все цифры равны?
имеется в виду в числе n/
какая тут идея?
я что то не могу додуматься
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2013, 08:36     Сколько цифр в числе, которые равны "а"?
Еще ссылки по теме:

В вещественном числе определить, равны ли суммы цифр целой и дробной части C++
C++ Подсчитать, сколько десятичных цифр содержится в числе
C++ Дано натурально число n. Сколько цифр в этом числе. Чему равняется сумма цифр. Найти первую цифру

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

Или воспользуйтесь поиском по форуму:
genock94
 Аватар для genock94
20 / 20 / 1
Регистрация: 16.11.2012
Сообщений: 348
27.05.2013, 08:36     Сколько цифр в числе, которые равны "а"? #10
glushara, если я правильно понял, то: в случае равенства всех цифр в числе "n" вывести "Все цифры в числе n равны", иначе "НЕ все цифры в числе n равны". В таком случае код будет таким:
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
// помощь.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <conio.h>
 
int main()
{
    int a,n,b,k=0;
    int x; // переменная-накопитель (для проверки равенства всех цифр) x==n;
    bool ravni=1;
 
    printf("Vvedite chislo: ");
    scanf("%d",&n);
 
    printf("Vvedite cifru: ");
    scanf("%d",&a);
    x=n;
 
    while (n!=0)    // цикл для нахождения числа цифр, не равных "a"
    {
        b=n%10;
        if (b!=a) 
            k++;
        n=n/10;
    } 
    printf("Kolichestvo cifr, ne ravnih 'a': %d\n",k);
 
    b=x%10; //сохраняем первую цифру.
    while (x!=0)    // цикл для проверки равенства всех цифр в числе "n" цифре "b"
    {
        if((x%10)!=b)
        {
            ravni=0;
            break;
        }
        x=x/10;
    }   
 
    if (ravni)
        printf("Vse cifri v chisle 'n' ravni %d.",b);
    else
        printf("NE vse cifri v chisle 'n' ravni %d.",b);
 
    getch();
    return 0;
}
Добавлено через 2 минуты
А если надо сравнивать все цифры числа "n" с цифрой "a", и в случае их равенства вывести "Все цифры в числе n равны a", то программа выглядит следующим образом:
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
// помощь.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <conio.h>
 
int main()
{
    int a,n,b,k=0;
    int x; // переменная-накопитель (для проверки равенства всех цифр) x==n;
    bool ravni=1;
 
    printf("Vvedite chislo: ");
    scanf("%d",&n);
 
    printf("Vvedite cifru: ");
    scanf("%d",&a);
    x=n;
 
    while (n!=0)    // цикл для нахождения числа цифр, не равных "a"
    {
        b=n%10;
        if (b!=a) 
            k++;
        n=n/10;
    } 
    printf("Kolichestvo cifr, ne ravnih 'a': %d\n",k);
 
    while (x!=0)    // цикл для проверки равенства всех цифр в числе "n" цифре "b"
    {
        if((x%10)!=a)
        {
            ravni=0;
            break;
        }
        x=x/10;
    }   
 
    if (ravni)
        printf("Vse cifri v chisle 'n' ravni %d.",a);
    else
        printf("NE vse cifri v chisle 'n' ravni %d.",a);
 
    getch();
    return 0;
}
Yandex
Объявления
27.05.2013, 08:36     Сколько цифр в числе, которые равны "а"?
Ответ Создать тему
Опции темы

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