#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int Is_Identity_Matrix(int **arr,int num);
int main(){
int row=0,ch=0,**matrix=NULL;
srand((unsigned int)time(0));
for(fputs("Input the row of matrix:->",stdout);(ch=scanf_s("%d",&row))!=1||row>30;fputs("Input the row of matrix:->",stdout))
while((ch=getchar())!=EOF&&ch!=10);
matrix=(int **)calloc(row,sizeof(int *));
for(int i=0;i<row;matrix[i]=(int *)calloc(row,sizeof(int)),i++);
for(int i=0;i<row;matrix[i][i]=1,i++);//建立一个单元矩阵
matrix[rand()%row][rand()%row]=1;//将一个随机位置改为1
for(int i=0;i<row;i++){
for(int j=0;j<row;j++)
printf("%d ",matrix[i][j]);
fputc(10,stdout);
}
printf("The matrix with %d rows %s IdentityMatrix.\n",row,Is_Identity_Matrix(matrix,row)?"is":"isn't");
for(int i=0;i<row;free(matrix[i]),matrix[i]=NULL,i++);
free(matrix);
matrix=NULL;
}
//
int Is_Identity_Matrix(int **arr,int num){
for(int i=0;i<num;i++)
for(int j=0;j<num;j++)
if(arr[i][j]!=(i==j))
return 0;
return 1;}
/*
1 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 1
*/
8.8.4-PointersOnC-20220215
于 2022-02-15 11:38:25 首次发布
关键词由CSDN通过智能技术生成