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

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

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

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

26.05.2013, 21:39. Просмотров 649. Ответов 9
Метки нет (Все метки)

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

Сколько существует способов расставить между цифр знаки "+" и "-" - C++
Вот сама задача - {удалено} Не могу сделать норм перебор

На C++ в строке после символа - "+" поставить символ "*" и посчитать сколько "+" - C++
С++ Мы вводим вручную строку , (через cin &gt;&gt; )программа должна после каждого &quot;+&quot; поставить &quot;*&quot; потом посчитать сколько всего было &quot;+&quot;...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Подсчитать, сколько букв "Р", "к", "т" в данной строке - C++
дана строка подсчитать сколько в ней букв Р, к, т. помогите=)

Дано натуральное число. Найти сумму последних "n" цифр "n" числа, не применяя переменых значений - C++
Здравствуйте, помогите написать две программы. 1) Дано натуральное число. Найти сумму последних &quot;n&quot; цифр &quot;n&quot; числа, не применяя...

дано четырехзначное число. если сумма первых 2 цифр=сумме 2 последних, написать "yes", иначе "no" - C++
Вот попробовал написать код но ошибку выдает: #include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; int main() { ...

9
genock94
20 / 20 / 1
Регистрация: 16.11.2012
Сообщений: 348
26.05.2013, 21:49 #2
glushara, позвольте уточнить. Пользователь вводит цифру "a". Потом пользователь вводит число "n". И в этом числе "n" надо поссчитать число цифр, не равных цифре "a"?
0
glushara
0 / 0 / 0
Регистрация: 20.04.2012
Сообщений: 33
26.05.2013, 21:52  [ТС] #3
Цитата Сообщение от genock94 Посмотреть сообщение
glushara, позвольте уточнить. Пользователь вводит цифру "a". Потом пользователь вводит число "n". И в этом числе "n" надо поссчитать число цифр, не равных цифре "a"?
да..именно так
0
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"..
0
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"..

спасибо.
а не знаешь ли что не так в моей программе?
0
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
0
glushara
0 / 0 / 0
Регистрация: 20.04.2012
Сообщений: 33
26.05.2013, 22:05  [ТС] #7
Цитата Сообщение от genock94 Посмотреть сообщение
glushara, хмм.. Скомпилировал вашу программу и резьтаты сходятся.. Как вы поняли то, что в программе ошибка?
например
цифра - 4
число - 45555555555
выводит - 9
должно - 10

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

Определить, сколько в строке символов "*", ":", ";" - C++
Учусь языку,не могу разобраться со строками,а точнее с их описанием! Помогите пожалуйста на примере задачи:Дана строка.Определить сколько в...

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

Определить количество слов, которые содержат ровно четыре буквы "о", "О" - C++
Дано строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить количество слов, которые содержат ровно...

Удалять в словах, которые заканчиваются на букву "А" все другие буквы "А" - C++
Здравствуйте! Есть текст &quot;Варвара очень любит леопарда&quot;. Нужно сделать программу, которая будет удалять в словах, которые заканчиваются...


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

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

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