2014-02-07 96 views
-2

请给你的有关数组越界的观点....如果IM服用大阵列输出20数组大小....打印垃圾值C编程数组索引越界

#include<stdio.h> 
int main() 
{ 
    int message[200],i,j,n,count,temp; 
    count=0; 
    scanf("%d",&n); 
    //input taking line 
    for(i=1; i<=n; i++) 
     scanf("%d",&message[i]); 
    for(i=1; i<=n; i++) 
    { 
     if(message[i]==1) 
     { 
      count+=1; 
     } 
     if(message[i]==0) 
      count=0; 

     if(count==5) 
     { 
      count=0; 
      temp=message[i+1]; 
      message[i+1]=0; 
      //n=n+1; 
      //n1=n; 
      for(j=(n); j<(i+2); j--) 
      { 
       message[j+1]=message[j]; 
      } 
      n++; 
      message[i+2]=temp; 
     } 
    } 

    printf("line\n"); 
    //n1+=1; 
    for(i=0; i<n; i++) 
    { 
     printf("%d\n",message[i]); 
    } 
    //n1+=1; 
    return 0; 

} 

正确的位感谢您的帮助...

+0

显示您的输入。 – BLUEPIXY

回答

2

在C中,数组索引从0开始。您的循环应如下所示:

for(i=0;i<n;i++) {...} 
+0

它仍然显示相同的错误,如果我采取大阵列..没有垃圾值....否则它显示垃圾值 – bytes1337

+0

你不能为'n'大于'200'的值。 – haccks

+0

你试图运行程序与所有我,j从零开始.....并采取数组大小20和n = 8 ...运行它... dn给解决方案 – bytes1337