【发布时间】:2019-07-09 19:48:35
【问题描述】:
为什么这段代码不起作用? (我想将数字从二进制转换为十进制) 指针有问题?或乘法(char*int)
char cara[100];
char *t=cara;
int i=0;
int sum=0;
int j=0;
int m;
printf("entrer a binary number\n");
scanf("%s",&cara);
while(*t!="\0")
{
j++;
m=j-1;
}
for(i=0;i<j;i++)
{
cara[i]=cara[i]*pow(2,m);
m--;
}
int k;
for(k=0;k<j;k++)
{
sum=sum+cara[i];
}
printf("%d",sum);
}
【问题讨论】:
-
while(*t!="\0")你的编译器说了什么? -
编译器什么也没说
-
OT:使用
pow确实没有必要。 -
@mohamedbenhaddou 然后重新编译并启用所有警告。
-
cara[i]=cara[i]*pow(2,m);错误