供参考:
#include<stdio.h>
int main()
{
int n,a[10]={0},i=0,flg=1;
scanf("%d",&n);
if(n < 0){n = - n;flg = -1;}
while(n)
{
if((n%10)%2 == 1) a[i++] = n%10;
n /= 10;
}
while(i--)
n = n*10 + a[i];
printf("%d\n",n*flg);
return 0;
}
你遍历一下,看看哪一位是奇数,乘上它的权,最后加起来就行了
#include <stdio.h>
int main()
{
char buf[10]={0};
int n=0,i=0,t;
int flag;
scanf("%d",&n);
if(n>0)
flag = 1;
else if(n <0)
{
flag = -1;
n = -n;
}
else
flag = 0;
while(n)
{
t = n%10;
if(t%2==1)
buf[i++]= '0'+t;
n/=10;
}
n = 0;
i--;
for(;i>=0;i--)
n = n*10 + buf[i]-'0';
n = flag * n;
printf("%d",n);
return 0;
}