我正在编写二进制/十进制转换器,并且遇到了一些错误。我需要一些帮助来修复它们。
错误1:
assignment 1.c:10:23: error: invalid types 'long int[long int]' for array subscript
scanf("%ld",&num[i]);
错误2:
assignment 1.c:11:11: error: invalid types 'long int[int]' for array subscript
if(num[0]==0){
错误3:
assignment 1.c:20:11: error: invalid types 'long int[int]' for array subscript
if(num[0]==1){
我不确定他们的问题是什么,我可能会犯一个明显的错误。
#include<stdio.h>
int main(){
long int num,decimalNumber=0,j=1,remainder,i;
int bord;
printf("Enter any number any binary number: ");
scanf("%ld",&num[i]);
if(num[0]==0){
while(num!=0){
remainder=num%10;
decimalNumber=decimalNumber+remainder*j;
j=j*2;
num=num/10;
}
}
if(num[0]==1){
printf("Press '1' for binary\n Press '2' for deciaml");
}
printf("Equivalent decimal value: %ld",decimalNumber);
return 0;
}
该程序尚未完成。
答案 0 :(得分:1)
代码正在尝试索引非数组。 @Ryan O'Hara
// bad
long int num,...,i;
....
if(num[0]==0){
相反,简单地使用if(num==0){
或OP的代码,确实需要怀疑if(num != 0){
。