求一个人解答基础c语言题

将一个整数中的每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如:87654321,运行结果:7531.

//求差错,结果不对
#include<stdio.h>
 #include<math.h>
 int main()
 {
     int a,t,c=0,i=0;
     double sum=0.0;
     printf("请输入一个数字:\n");
     scanf("%d",&a);
     while(a>0) 
     {
          t=a%10;
         a/=10;
         if(t%2!=0) c++;//奇数的个数
             sum=sum+(double)t*pow(10,c-1);//求和
    }
     printf("t中的数为:%.2f\n",sum);
     return 0;
 }


//求差错,结果不对
#include <stdio.h>
#include <math.h>
int main()
{
    int a, t, c = 0, i = 0,sum = 0;
    printf("请输入一个数字:\n");
    scanf("%d", &a);
    while (a > 0)
    {
        t = a % 10;
        a /= 10;
        if(t % 2 == 1){
            c ++;
            sum += pow(10,c - 1)*t;
        }
    }
    printf("t中的数为:%d\n", sum);
    return 0;
}