我的 C 程序编译并运行良好,直到我从 main() 调用此函数
void rearrangeMainDiagonal(int mat[MAX_ORDER][MAX_ORDER], int order)
{
int i, j, k=0, l=0, n=0;
int temp[20], odd_temp[20], even_temp[20];
for(i=0;i<order;i++)
{
for(j=0;j<order;j++)
{
temp[k] = mat[i][i];
k++;
}
}
for(i=0;i<=k;i++)
{
if(temp[i]%2==0)
{
even_temp[l] = temp[i];
l++;
}
else
{
odd_temp[n] = temp[i];
n++;
}
}
for(j=0;j<=n;j++)
{
temp[j] = odd_temp[j];
}
for(i=0;i<=l;i++,j++)
{
temp[j] = even_temp[i];
}
k=0;
for(i=0;i<order;i++)
{
for(j=0;j<order;j++)
{
mat[i][i] = temp[k] ;
k++;
}
}
}
当我运行程序时,会弹出一条消息说'程序已停止工作。请关闭程序。当我尝试逐步执行它时,它显示“您的程序中出现访问冲突”并停止。包含行“temp[j] =odd_temp[j];”的“for 循环”弹出错误。