2016-10-02 67 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這樣的簡短變量名,這只是令人困惑(更喜歡長/邏輯的)。評論你的項目並瞭解編譯器錯誤也從未受到傷害。

相關問題