数组下标的类型'long int [long int]'无效

时间:2016-08-03 00:29:12

标签: c

我正在编写二进制/十进制转换器,并且遇到了一些错误。我需要一些帮助来修复它们。

错误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;
}

该程序尚未完成。

1 个答案:

答案 0 :(得分:1)

代码正在尝试索引非数组。 @Ryan O'Hara

// bad
long int num,...,i;
....
if(num[0]==0){

相反,简单地使用if(num==0){或OP的代码,确实需要怀疑if(num != 0){