对nuciewth的回答:
下面的代码是我早上发贴之前编的:
#include<stdio.h>
#define SIZE 3
int identity_matrix(int mat[][SIZE])
{
int i,j;
for(i=0;i<SIZE;i++)
for(j=0;j<SIZE;j++)
{
if(i==j)
{ if(mat[i][j]!=1)return 0;}
else
{ if(mat[i][j]!=0)return 0;}
}
return 1;
}
int main(void)
{
int i,j;
int matrix[SIZE][SIZE];
for(i=0;i<SIZE;i++)
for(j=0;j<SIZE;j++)
scanf("%d",&matrix[i][j]);
printf("输入的矩阵为:\n");
for(i=0;i<SIZE;i++)
{for(j=0;j<SIZE;j++)
printf("%d ",matrix[i][j]);
printf("\n");
}
if(identity_matrix(matrix))
printf("this is matrix\n");
else
printf("no\n");
return 0;
}
}
虽然我这个程序编的不怎么样,比你那个用指针编的执行效率低,但是在初学者看来比较容易懂,而且我编译没有错误,可以运行,而你的那个程序的功能跟我的一样,但是我编译没通过。
还有我发的那个问题不是你要编的程序的那个意思,请理解清楚,要是像你说的那么简单,我干嘛贴出来问别人。我的那个问题要求能够矩阵数能够动态的变化。
我的操作系统是xp sp2
你的程序应该是没问题,不过我问的问题所要求的矩阵大小不是在预定义里面定义的,而是像如果我要定义矩阵的大小为3,那么在main函数中通过这样输入scanf("%d",&n);像你这种把大小在预定义里面定义完后,虽然可以通过更改大小,但是要变动程序,而我的意思是在运行的时候可以改动。