PDA

Показать полную графическую версию : [решено] Исключить из числа четные цифры.


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

#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
В таком случае на месте четных числе будут нули:

#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
degree = 0 »Почему нулём инициализация? Может degree = 1 лучше?

ViRTaCe
03-03-2014, 02:35
Почему нулём инициализация? Может degree = 1 лучше? »
Да конечно же единицей, ошибся немного.

alena_lep
03-03-2014, 17:28
Спасибо!!!




© OSzone.net 2001-2012