曾经用VC++6.0编译过一个程序,debug时候的输出结果和实际运行输出的结果有出入
有没有人碰到过这种事情?这是什么原因?
int maximum_among_columns() { int i,j; for(i=0;i<n;i++) sum_of_column[i]=0; for(i=0;i<n;i++) for(j=0;j<n;j++) sum_of_column[i]+=matrix[j][i]; const int *p=max_element(sum_of_column,sum_of_column+n); return *p; }
void change_matrix() { bool b; int temp,i,j; srand((unsigned)time(NULL)); for(i=0;i<n;i++) for(j=0;j<n;j++) matrix_0[k][i][j]=matrix[i][j]; k++; temp=rand()%n; rotate(matrix[temp],matrix[temp]+n-1,matrix[temp]+n); for(i=0;i<k;i++) { b=equal(&matrix[0][0],&matrix[n-1][n-1],&matrix_0[i][0][0]); if(b) { static int count=0; k--; count++; if(count>n*n) return; change_matrix(); } } return; }
int main() { int i,j,temp; int minimum_of_maximum; cin>>n; while(n!=-1) { for(i=0;i<n;i++) for(j=0;j<n;j++) cin>>matrix[i][j]; minimum_of_maximum=maximum_among_columns(); for(i=0;i<n*n;i++) { change_matrix(); temp=maximum_among_columns(); if(temp<minimum_of_maximum) minimum_of_maximum=temp; } cout<<minimum_of_maximum<<endl; cin>>n; } return 0; }