Debug模式和Release模式得出的结果不一样,
这是一个把2维数组分别按行和列转变为一维数组的程序
当N等于100时,Vc的Release模式与Debug模式,BCB,Bc3.1,得出的结果都不一样,请问这是程序的问题还是编译器的问题(Win2k,vc6_sp4),谢谢。
#include "stdio.h"
#define N 5
void main()
{
int source[N][N]={0};
int a[1000]={0}, b[1000]={0};
int i,j,k,n=1;
for(i=0;i<N;i++)
{
for(j=0;j<i;j++)
{
source[i][j]=0;
printf("%8d",source[i][j]);
}
for(j=i;j<N;j++)
{
source[i][j]=n++;
printf("%8d",source[i][j]);
}
printf("\n\n\n");
}//初始化2维数组
n=0;
printf("\n");
for(i=0;i<N;i++)
{
for(j=i;j<N;j++)
a[n++]=source[i][j];
}
for(i=0;i<n;i++)
printf("%8d",a[i]);
printf("\n\n");//显示初始的一维数组
n=0;
for(i=0;i<N;i++)
{
for(j=0,k=0;j<=i;j++)
{
b[n]=a[i+k];
n++;
k+=(N-1-j);
}
}
for(i=0;i<n;i++)
printf("%8d",b[i]);
printf("\n\n");
}