c语言】取出一个无符号的十进制整数中所有的奇数数字,按原来的顺序组成一个新的数.

##【c语言题目】取出一个无符号的十进制整数中所有的奇数数字,按原来的顺序组成一个新的数.

int n,a[n],c=1,count=0;
printf("请输入一个无符号的十进制整数:");
scanf("%d",&n);
 
for(int i=1; n!=0; i++)
    {
        a[i]=n%10;
        n/= 10;
         if(a[i]/2!=0)
         {
            a[i]=a[i]*c;
            count=a[i]+count;
            c*=10;
         }
       
   }
  printf("%d",count);
   
return 0;
}

这个代码输入123,结果为23,想不通哪里出错了,求解答

这个数组长度不能用变量定义
a[i]%2 != 0
已贴出代码和运行图,有帮助的话采纳一下哦!

#include <stdio.h> 
int main(){
    int n,a[100],c=1,count=0;
    printf("请输入一个无符号的十进制整数:");
    scanf("%d",&n); 
    for(int i=1; n!=0; i++)
        {
            a[i]=n%10;
            n/= 10;
             if(a[i]%2!=0)
             {
                a[i]=a[i]*c;
                count=a[i]+count;
                c*=10;
             }    
       }
    printf("%d",count);       
    return 0;    
}

img

#include <stdio.h>

int main()
{
    int n,a[10],c=1,count=0;
    printf("请输入一个无符号的十进制整数:");
    scanf("%d",&n);

    for(int i=1; n!=0; i++)
    {
        a[i]=n%10;
        n/= 10;
        if(a[i]%2!=0)
        {
            a[i]=a[i]*c;
            count=a[i]+count;
            c*=10;
        }

    }
    printf("%d",count);

    return 0;
}