Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
KatrinLuxury
14 / 14 / 11
Регистрация: 14.11.2016
Сообщений: 262
1

Определить, сколько цифр содержит заданное целое число

30.04.2017, 19:25. Просмотров 1078. Ответов 26
Метки нет (Все метки)

Помогите пожалуйста.

Использовать стандартные функции и арифметические операторы; изучить операторы отношения и присваивания, логические
операции, условный оператор и оператор-переключатель; научиться использовать в программах операторы цикла. Написать программы на изученные темы.

Определить, сколько цифр содержит заданное целое число и имеются ли в нем
повторяющиеся цифры.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2017, 19:25
Ответы с готовыми решениями:

Определить, сколько цифр содержит вводимое натуральное число N
Помогите пожалуйста) :help:

Определить, является ли заданное целое число А нечетным двузначным числом
Помогите пожалуйста решить задачи 1. Определить, является ли заданное целое число А нечетным...

Дано целое десятичное число a. Определить количество четных цифр в числе а
Помогите написать код С. Дано целое десятичное число a. Определить количество четных цифр в...

Определить, сколько раз встречается заданное число среди элементов массива
1. Дан двухмерный массив n×m элементов. Определить, сколько раз встречается число 7 среди элементов...

Процедуры и функции. Определить, сколько раз заданное пользователем число повторяется в массиве
Программа заполняет массив(20) случайными числами, запрашивает у пользователя число и с помощью...

26
sk007
Life Builder
510 / 481 / 369
Регистрация: 12.01.2011
Сообщений: 1,693
Завершенные тесты: 7
14.05.2017, 11:41 21
C
1
2
3
4
5
6
bool noRepeatDigit = true;//объявляем флаг
    int nDigit;////объявляем переменную типа инт
 
    for (nDigit = 0; x!= 0; nDigit++)//если х не равен 0, увеличиваем счетчик nDigit
    {
        if (noRepeatDigit)//если флаг noRepeatDigit равен true, то...
1
SexyHpexy
0 / 0 / 1
Регистрация: 03.12.2016
Сообщений: 82
Завершенные тесты: 1
17.05.2017, 22:35 22
Байт, Подскажите, пожалуйста, а как полностью оформить?
0
KatrinLuxury
14 / 14 / 11
Регистрация: 14.11.2016
Сообщений: 262
19.05.2017, 20:14  [ТС] 23
SexyHpexy, nDigit - количество чисел. Делаем цикл от 0 до того как число x не равно 0 и прибавляем каждый раз 1 к числу. Дальше, если выражение еще истина (по условию), делаем..

Добавлено через 1 час 25 минут
Байт, А если делать проверку без массива, как ее вписать? Поправьте пожалуйста
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
#include "stdafx.h"
int main(void)
{
    int x = 0;//x - введенное число
    int noRepeatDigit = 1;
    int nDigit;
    printf("To determine how many digits it contains a given integer and whether it has repeating digits.\n\n");
    printf("Enter x \n");
    while (1) {
        printf("x = ");                                                     
        if (scanf("%d", &x) == 1)
            break;
        scanf("%*[^\n]%*c");
        printf("Entered is not the correct value. Enter again \n");     
    }               
    for (nDigit = 0; x !=0; nDigit++)
    {
        if (noRepeatDigit)    //?
            {               
            if ((x % 10) > 1)       //? 
            noRepeatDigit = 0; //?
            }
                x /= 10;
    }   
        printf("The number of digits: %d\n", nDigit);
        if (noRepeatDigit)
            puts("Repeated numbers - no ");
        else
            puts("Repeated numbers - yes");
            return 0;
    }
1
Nigg@
9 / 9 / 6
Регистрация: 02.02.2010
Сообщений: 34
20.05.2017, 11:52 24
Байт, честно сказать я тоже не понял как вы это сделали. Прошу пояснить))
у меня получилось так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <string.h>
 
int main() {
 int counters[10];
 int len=0;
 int count=0;
 memset(counters,0,sizeof(counters));
 int c;
 while ((c=getchar())!='\n'){
  counters[c-'0']++;
  len++;
 }
  
 for (int i=0;i<=len; i++){
  if (counters[i]>1)
   count++;
 }
 printf("%i\n", count);
 printf("%i\n", len);
}
или можно так:
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
#include <stdio.h>
#include <string.h>
 
int main (void){
    int i=0;
    int len=0; // длинна числа
    int count =0; // кол-во повторяющихся символов
    int counters[20];
    memset(counters,0,sizeof(counters));
    int c;
    while ((c=getchar())!='\n'){
        counters[i]=c-'0';
        i++;
    }
    len = i;    
    counters[i]=10;
    
    for (i=0; i<=len; i++){
        for (int j=i+1; j<=len; j++){
            if (counters[i]==counters[j])
                count++;
        }
    }
    printf("длинна числа %i \n", len);
    printf("количество повторяющихся символов %i \n", count);
}
0
20.05.2017, 11:52
KatrinLuxury
14 / 14 / 11
Регистрация: 14.11.2016
Сообщений: 262
20.05.2017, 11:54  [ТС] 25
Цитата Сообщение от Nigg@ Посмотреть сообщение
или можно так:
А можно как-нибудь без массива? (не дошли еще)
0
Nigg@
9 / 9 / 6
Регистрация: 02.02.2010
Сообщений: 34
20.05.2017, 12:22 26
Байт, я разобрался, пояснять не надо
0
KatrinLuxury
14 / 14 / 11
Регистрация: 14.11.2016
Сообщений: 262
20.05.2017, 12:57  [ТС] 27
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
#include "stdafx.h"
#include <stdio.h>
 
int main(void) {
    int no=0,spec, copy,buf, x;//x - введенное число
    int noRepeatDigit = 0;
    int nDigit=0;
 
    printf("To determine how many digits it contains a given integer and whether it has repeating digits.\n");
    printf("Enter x <=10 symbols\n\n");
    printf("Enter x \n");
    while (1) {
        printf("x = ");
        if (scanf("%d", &x) == 1)
            break;
        scanf("%*[^\n]%*c");
        printf("Entered is not the correct value. Enter again. Enter x \n");
    }
    while (x)
    {
        buf = x % 10;
        x /= 10;
        copy = x;
        while (copy)
        {
            if (buf == copy % 10)
                noRepeatDigit++;
            copy /= 10;
        }
        if (noRepeatDigit > 0)
            no = 1;
        noRepeatDigit = 0;
        nDigit++;
    }
    printf("The number of digits: %d\n", nDigit);
    if (no==0) 
        puts("Repeated numbers - no ");
    else
        puts("Repeated numbers - yes"); 
    return 0;
}
0
20.05.2017, 12:57
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2017, 12:57

Напечатать все пары «близнецов» из отрезка [n,2n], где n – заданное целое число, большее 2.
Два простых числа называются «близнецами», если они отличаются друг от друга на 2 (например, числа...

Дано натурально число n. Сколько цифр в этом числе. Чему равняется сумма цифр. Найти первую цифру
Я написал для нахождения суммы цифр. Но выдает ошибку process exited with value 0 и какие-то числа....

Ввести целое число и определить, является ли данное число простым или нет
Ввести целое число и определить является ли данное число простым или нет. (желательно простым кодом...


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

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

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