那个学霸给我看看二进制转十进制程序哪里有问题呀

img

问题好几个:代码修改如下,修改部分都已经标注:

#include <stdio.h>

int main()
{
    int a[6];
    int n,i,sum=0;
    int r=1;
    for (i=0;i<6;i++)
    {
        scanf_s("%d",&a[i]);//修改1,a[i]前添加&
    }
    for (n=5;n>=0;n--)//修改2n>=0
    {
        a[n] = a[n]*r; //修改3,左侧是最高位,所以pow的时候需要倒序
        r*=2;
        sum = sum + a[n]; //修改4:a[i]改成a[n],i未初始化,不要用i了
    }
    printf("%d",sum);
    return 0;
}

scanf_s("%d", a[i]); a[i] 变量前面少了 & 取变量地址
改成

  scanf_s("%d", &a[i]);

如有帮助,望采纳!谢谢!