Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Исключить из числа четные цифры. (http://forum.oszone.net/showthread.php?t=278540)

alena_lep 01-03-2014 11:28 2317629

Исключить из числа четные цифры.
 
Здравствуйте! У меня такая задача: исключить из записи натурального числа все четные цифры. Я написала программу, но она выводит только нечетные цифры в обратном порядке. Как мне соединить эти нечетные цифры в одно число и записать их в таком же порядке, в каком были в исходном числе (язык С)?

Код:

#include<stdio.h>
int cycle(int x)
{
        int a;
        do
        {
                a=x%10;
                x/=10;
                if(a%2!=0)
                        printf("%d ", a);
        }
        while (x>0);

        return 0;
}
int main()
{
        int x, m;
        scanf("%d", &x);
        m=cycle(x);
        return 0;
}


ViRTaCe 02-03-2014 22:24 2318275

В таком случае на месте четных числе будут нули:
Код:

#include<stdio.h>
#include<math.h>
int cycle(int x)
{
        int a, degree = 1, result = 0;
        do
        {
                a=x%10;
                x/=10;
                if(a%2!=0)
              {
                        result += pow(10, degree) * a;
                }
                degree++;
        }
        while (x>0);

        return result;
}
int main()
{
        int x, m;
        scanf("%d", &x);
        m=cycle(x);
        return 0;
}

В таком случае, все нечетные числа будут идти по порядку:
Код:

#include<stdio.h>
#include<math.h>
int cycle(int x)
{
        int a, degree = 1, result = 0;
        do
        {
                a=x%10;
                x/=10;
                if(a%2!=0)
              {
                        result += pow(10, degree) * a;
                        degree++;
                }
        }
        while (x>0);

        return result;
}
int main()
{
        int x, m;
        scanf("%d", &x);
        m=cycle(x);
        return 0;
}


Drongo 03-03-2014 00:44 2318319

Цитата:

Цитата ViRTaCe
degree = 0 »

Почему нулём инициализация? Может degree = 1 лучше?

ViRTaCe 03-03-2014 02:35 2318361

Цитата:

Цитата Drongo
Почему нулём инициализация? Может degree = 1 лучше? »

Да конечно же единицей, ошибся немного.

alena_lep 03-03-2014 17:28 2318579

Спасибо!!!


Время: 21:43.

Время: 21:43.
© OSzone.net 2001-