Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 156
1

Выбросить из записи заданного числа указанные цифры, оставив прежним порядок остальных цифр

09.11.2016, 20:13. Просмотров 1773. Ответов 21
Метки нет (Все метки)

Вот условие:
Выбросить из записи числа n цифры 0 и 5, оставив прежним порядок остальных цифр. Если из числа удалены все цифры, то вывести 0.
Ввод
В первой строке содержится натуральное число n (1≤n≤4294967295).
Вывод
Вывести измененное число

Вот решение:
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 <math.h>
#include <stdio.h>
int main()
{
    unsigned long int a, b, i, k;
    scanf("%d", &a);
    i = 0;
    b = a;
    while (b > 10) {
        b = b / 10;
        i++;
    };
    k = pow(10, i);
    b = a;
    while (i > 0) {
        b = a / k;
        a = a % k;
        i--;
        if (b != 5 & b != 0) {
            printf("%d", b);
        };
    };
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2016, 20:13
Ответы с готовыми решениями:

Из записи числа n выбросить цифры 0 и 5, оставив прежним порядок остальных цифр
Дано натуральное число n. Найти значение числа, полученного следующим образом: из записи числа n...

Удалить из записи числа N цифры 0 и 5, оставив прежним порядок остальных цифр
Дано натуральное число N. Удалить из записи числа N цифры 0 и 5, оставив прежним порядок остальных...

Удалить из записи числа N цифры 0 и 5, оставив прежним порядок остальных цифр
Дано натуральное число N. Удалить из записи числа N цифры 0 и 5, оставив прежним порядок остальных...

Выбросить из записи введенного натурального числа n цифры, которые задаются пользователем, оставив прежним порядок остал
Здравствуйте, форумчане. Нужна программа на Си, которая убирала бы из записи определённого числа,...

21
sourcerer
09.11.2016, 20:17
  #2
 Комментарий модератора 
Владислава77777, прочитайте правила форума.
Особое внимание обратите на пункты 4.2, 4.3 и 4.9.
0
Эксперт C
23438 / 14680 / 3093
Регистрация: 24.12.2010
Сообщений: 31,282
09.11.2016, 21:12 3
C
1
2
3
4
5
6
7
res = 0;
for(p=1; a; a/=10) {
  c = a%10;
  if (c==0 || c==5) continue;
  res += c*p;
  p *= 10;
}
1
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 156
10.11.2016, 17:56  [ТС] 4
Байт, это с какой строчки в ответ вставлять? с 6-ой?
0
Эксперт C
23438 / 14680 / 3093
Регистрация: 24.12.2010
Сообщений: 31,282
10.11.2016, 18:02 5
Цитата Сообщение от Владислава77777 Посмотреть сообщение
с какой строчки в ответ вставлять?
После цикла вычисления числа.

Добавлено через 1 минуту
C
1
2
3
4
5
6
7
8
res = 0;
for(p=1; a; a/=10) {
  c = a%10;
  if (c==0 || c==5) continue;
  res += c*p;
  p *= 10;
}
printf("%d\n", res);
0
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 156
10.11.2016, 18:33  [ТС] 6
Напишите, пожалуйста, весь код. не понимаю я немного

Добавлено через 34 секунды
Байт, Напишите, пожалуйста, весь код. Мне немного непонятно
0
Эксперт C
23438 / 14680 / 3093
Регистрация: 24.12.2010
Сообщений: 31,282
10.11.2016, 20:24 7
Цитата Сообщение от Владислава77777 Посмотреть сообщение
Напишите, пожалуйста, весь код.
Лень. А главное - это тебе не поможет.
Цитата Сообщение от Владислава77777 Посмотреть сообщение
Мне немного непонятно
Убери приставку "не". А оставшееся "много" замени на "ничего".
Цитата Сообщение от Владислава77777 Посмотреть сообщение
Вот решение:
У меня была иллюзия, что вы хотя бы один пальчик к приведенному в стартовом посте коду приложили. Эта иллюзия была развеяна, увы!
0
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 156
10.11.2016, 20:30  [ТС] 8
это непррравда

Добавлено через 4 минуты
Байт, получается, цикл вычисления числа - это строки с 9-ую по 11-ую, верно?
0
Эксперт C
23438 / 14680 / 3093
Регистрация: 24.12.2010
Сообщений: 31,282
10.11.2016, 20:32 9
Цитата Сообщение от Владислава77777 Посмотреть сообщение
это непррравда
Что именно?
Но если ты хоть немножко в теме - попробуй подумать собственной головой.
Я знаю, есть у новичков такой комплекс. Выложив свою проблемку на обозрение, они полностью отключают собственную соображаловку. Как древние греки, помолившись богам своим, отдавали челны и члены свои на ихнюю волю.
0
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 156
10.11.2016, 20:36  [ТС] 10
Байт, Ваше сравнение здесь неуместно и вызывает у меня лично отвращение. Я и "подумала собственной головой" и спрашиваю: цикл вычисления числа - это строки с 9-ую по 11-ую, верно?
0
Эксперт C
23438 / 14680 / 3093
Регистрация: 24.12.2010
Сообщений: 31,282
10.11.2016, 20:59 11
Цитата Сообщение от Владислава77777 Посмотреть сообщение
Ваше сравнение здесь неуместно
Не вам судить. Вы на этом месте всего два дня.
Цитата Сообщение от Владислава77777 Посмотреть сообщение
вызывает у меня лично отвращение
Ваше дело.
Цитата Сообщение от Владислава77777 Посмотреть сообщение
спрашиваю: цикл вычисления числа - это строки с 9-ую по 11-ую, верно?
Теперь поговорим по делу. О каком коде вы спрашиваете? В топике их несколько. Но поскольку ни в одном из них , кроме стартового нет 11-й строки, я позволил себе предположить, что речь идет о стартовом.
C
1
2
3
4
while (b > 10) {
        b = b / 10;
        i++;
    };
Вот этот кусочек, я угадал? Этот цикл находит количество знаков знаков в числе b. Для того не шибко уклюжего алгоритма это нужно. Для другого, специально для вас придуманного мной, это совершенно ни к чему.

Не по теме:

И не обижайтесь на меня, пожалуйста. Порой, ради красного словца, кого только не жаль.:)

0
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 156
10.11.2016, 21:16  [ТС] 12
время, проведенное здесь, роли не играет да и я не обидчивая.
а если о коде - угадали, то есть мне нужно самой написать этот алгоритм и добавить ваш кусочек кода?
0
Эксперт C
23438 / 14680 / 3093
Регистрация: 24.12.2010
Сообщений: 31,282
10.11.2016, 21:23 13
Цитата Сообщение от Владислава77777 Посмотреть сообщение
самой написать этот алгоритм и добавить ваш кусочек кода?
Да. Попробуйте. Покажите. Если что не так - будем думать вместе.
0
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 156
10.11.2016, 21:35  [ТС] 14
Хорошо, только если завтра
0
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 156
15.11.2016, 16:27  [ТС] 15
Байт, компилятор не принимает модуль crt
0
Эксперт C
23438 / 14680 / 3093
Регистрация: 24.12.2010
Сообщений: 31,282
15.11.2016, 16:43 16
Цитата Сообщение от Владислава77777 Посмотреть сообщение
компилятор не принимает модуль crt
Вы слишком высокого мнения о наших экстрасенсорных способностях...
0
Модератор
Эксперт JavaЭксперт CЭксперт С++
10795 / 6537 / 1611
Регистрация: 25.07.2009
Сообщений: 12,314
15.11.2016, 16:49 17

Не по теме:

Байт, будет Вам над барышней издеваться. Им за редким исключением программирование и так не легко даётся... ;)



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
#include <stdio.h>
 
int main(void) {
    unsigned n;
    
    while ( printf("Number: ") && scanf("%u", &n) == 1 ) {
        unsigned pwr = 1, result = 0;
        
        while ( n ) {
            unsigned last = n % 10;
        
            if ( last != 0 && last != 5 ) {
                result += last * pwr;
                pwr *= 10;
            }
            
            n /= 10;
        }
        
        printf("Result: %u\n", result);
    }
    
    return 0;
}
2
Форумчанин
Эксперт CЭксперт С++
8148 / 4998 / 1436
Регистрация: 29.11.2010
Сообщений: 13,460
16.11.2016, 12:21 18
hackmode
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
int main()
{
    char str[256], *p;
    int flag = 0;
    scanf("%s", str);
    for (p = str; *p; p++)
        if (*p != '0' && *p != '5')
        {
            printf("%c", *p);
            flag = 1;
        }
    if (!flag)
        printf("0");
    return 0;
}
Добавлено через 6 минут
Можно даже так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
int main()
{
    char c;
    int flag = 0;
    while (scanf("%c", &c) && c != '\n')
        if (c != '0' && c != '5')
        {
            printf("%c", c);
            flag = 1;
        }
    if (!flag)
        printf("0");
    return 0;
}
1
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 156
16.11.2016, 19:52  [ТС] 19
easybudda, Так мы и собираемся стать тем редким исключением, пока учимся
0
Байт
16.11.2016, 21:13     Выбросить из записи заданного числа указанные цифры, оставив прежним порядок остальных цифр
  #20

Не по теме:

Цитата Сообщение от Владислава77777 Посмотреть сообщение
мы и собираемся стать тем редким исключением, пока учимся
Ну что ж. Удачи!:)

0
16.11.2016, 21:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2016, 21:13
Привет! Вот еще темы с ответами:

Выбросить из записи числа n цифры 0 и 5, оставив прежним порядок остальных цифр
Всем доброго времени суток. Нужна помощь в написании кода (как сам ни старался, но осознал лишь,...

Выбросить из записи числа n цифры 0 и 5, оставив прежним порядок остальных цифр
Здравствуйте! Помогите решить задачку такого типа на C# (нужно пользоваться конструкцией for,...

Выбросить из записи числа n цифры 0 и 5, оставив прежним порядок остальных цифр
1. Дано натуральное число n. Выбросить из записи числа n цифры 0 и 5, оставив прежним порядок...

Выбросить из записи числа n цифры 0 и 5, оставив прежним порядок остальных цифр
Дано натуральное число n. Выбросить из записи числа n цифры 0 и 5, оставив прежним порядок...


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

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

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