MOOC 翁恺 c语言入门题目 请问这样写对吗

本人刚刚学习c语言
对于mooc上 翁恺 的这道题,这样写对吗?

还请各位不吝赐教谢谢了。

img

img

提供一种题解:

#include <stdio.h>
int main(void)
{
    int n=0,i=0,j=0,p[100]={0},a=0,b=1,sum=0;
    scanf("%d",&n);
    while(n>0)
    {
        a=n%10; //a存放数字 
        i++;    //i存放数位 
        if(a%2==0 && i%2==0 || a%2==1 && i%2==1) //同为奇或者同为偶则那个二进制为1 
            p[i-1]=1;
        else
            p[i-1]=0;
        n/=10;
    }
    for(j=0;j<i;j++)
    {
        sum+=p[j]*b;
        b*=2;
    }
    printf("%d",sum);
    return 0;
}

有问题欢迎交流,有帮助望采纳,谢谢!