Исключить из числа четные цифры.
Здравствуйте! У меня такая задача: исключить из записи натурального числа все четные цифры. Я написала программу, но она выводит только нечетные цифры в обратном порядке. Как мне соединить эти нечетные цифры в одно число и записать их в таком же порядке, в каком были в исходном числе (язык С)?
Код:
#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;
}
|
В таком случае на месте четных числе будут нули:
Код:
#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;
}
|
Почему нулём инициализация? Может degree = 1 лучше?
|
Цитата:
Цитата Drongo
Почему нулём инициализация? Может degree = 1 лучше? »
|
Да конечно же единицей, ошибся немного.
|
Время: 21:43.
© OSzone.net 2001-