2016-10-02 42 views
0

我不断收到主题的错误,下面是代码。特别是在常数N的类型中;我想数10 100和100无穷大。如何解决数组下标“无效类型”int [x] [const char *]'的错误?

什么是错,如何最好地解决它?

#include <iostream> 
#include <stdio.h> 
#define N 100 
#define start 1 

int main() 
{ 
    system("cls"); 
    long int a1,a2; 
    long int res1,res2; 
    long int c1,c2; 
    a1=start; 
    a2=a1+N; 
    res1=(a2+2)/5; 
    res2=(a2+4)/6; 

    long int i,q,z,g; 
    int nums[N]; 

    for (i=start; i<(start + N); i++) { 
     nums["i<start"+1]=10*i+8; 
    } 
    for (i=1; i<N; i++) { 
     for (q=1;q<=res1;q++) { 
      c2=(a2+q+2)/(10*q-8); 
      c1=(a1+q+2)/(10*q-8)+1; 

      for (g=c1;g<c2;g++) { 
       z=(10*q+8)*g-(q-2); 
       if ((z-start+1)<N) 
        nums[z-start+1]=0; 
       else 
        break; 
      } 
     } 
     for (q=1;q<=res2;q++) { 
      c2=(a2+q)/(10*q-6); 
      c1=(a1+q)/(10*q-6)+1; 
      for (g=c1;g<=c2;g++) { 
       z=(10*q-6)*g+q; 
       if ((z-start+1)<N) 
        nums["z-start"+1]=0; 
       else 
        break; 
      } 
     } 

    } 
    for (i=1;i<N;i++) 
     return 0; 

} 
+3

'nums [“i

+0

@SamVarshavchik它可能是一个巧妙的堆栈溢出漏洞利用。 – nicomp

+0

@nicomp :)但没有。 –

回答

2

那么,编译器已经说了什么问题。 nums["i<start"+1]nums["z-start"+1]导致该错误。您不能通过string(也称为const char*)为元素编制索引。只需将其替换为nums[i-start+1](或您的意思是<)和nums[z-start+1]即可。

另外你的代码写得不是很好。不要使用像Ngc2这样的简短变量名,这只是令人困惑(更喜欢长/逻辑的)。评论你的项目并了解编译器错误也从未受到伤害。

相关问题