刚才的帖子明明被baidu转到了<论坛建议区>,你去查查...LZ
PS:老K..你居然不发短消息告诉LZ.一定是故意的.然后躲在后面看乐
对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;
}
}
虽然我这个程序编的不怎么样,比你那个用指针编的执行效率低,但是在初学者看来比较容易懂,而且我编译没有错误,可以运行,而你的那个程序的功能跟我的一样,但是我编译没通过。
还有我发的那个问题不是你要编的程序的那个意思,请理解清楚,要是像你说的那么简单,我干嘛贴出来问别人。我的那个问题要求能够矩阵数能够动态的变化。
对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;
}
}
虽然我这个程序编的不怎么样,比你那个用指针编的执行效率低,但是在初学者看来比较容易懂,而且我编译没有错误,可以运行,而你的那个程序的功能跟我的一样,但是我编译没通过。
还有我发的那个问题不是你要编的程序的那个意思,请理解清楚,要是像你说的那么简单,我干嘛贴出来问别人。我的那个问题要求能够矩阵数能够动态的变化。
#include<stdio.h>
#define N 3
int identity_matrix(int (*a)[N],int n)/*1表示是单位阵*/
{
int i=0,j=0,flag=1;
while(i<n&&flag!=0)
{
while(j<n&&flag!=0)
{
if(i!=j&&*(*(a+i)+j)!=0)
{
flag=0;
break;
}
if(i==j&&*(*(a+i)+j)!=1)
{
flag=0;
break;
}
j++;
}
i++;
}
return(flag);
}
int main()
{
int data[N][N]={{1,0,0},{0,1,0},{0,0,1}};
printf("%d",identity_matrix(data,3));
return(0);
}
你再看看,现在可不可以.