功能不打印任何c ++

时间:2017-06-08 19:18:49

标签: c++

#include <iostream>
using namespace std;


int compute_binare_code(int n, int a[][4]){
    int i,j;
    int bC = 0, p = 1;
    for(i = 1;i <= n;i++){
        for(j = i+1;j <= n;j++){ //just counting bC
            bC += a[i][j]*p;
            p =p*2;
           } 
     }
    return bC;
}

int main(){
  cout << "mata3";
  int a[4][4],b[5][5],i,j;
  for(i=1;i<=4;i++)
    for(j=1;j<=4;j++)
        if( (i+j)%2 == 0)
            a[i][j]=0;
        else
            a[i][j]=1;


  cout<<"mata1";
  cout<<compute_binare_code(4, a);
  cout<<"mata2";
  return 0;
}

当我运行此程序时,它不会给出任何错误,但它会永远在后台运行。它不打印任何东西,甚至不打印&#34; mata3&#34;。有人能解释我为什么吗?

1 个答案:

答案 0 :(得分:0)

C ++中的数组从0开始索引。

您的for循环将i/j从1增加到4,但它应该是0到3。

另见Accessing an array out of bounds gives no error, why?