Показать полную графическую версию : [решено] Исключить из числа четные цифры.
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;
}
В таком случае на месте четных числе будут нули:
#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 = 0 »Почему нулём инициализация? Может degree = 1 лучше?
Почему нулём инициализация? Может degree = 1 лучше? »
Да конечно же единицей, ошибся немного.
alena_lep
03-03-2014, 17:28
Спасибо!!!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.