C语言求矩阵的乘法!!!!!!!!!
有没有一种 我输入N,程序就求出矩阵M的N次方的程序????我自己写了一个,多一次方就多一个for循环,理论上何以求到N次,但是觉得不够简洁。。。。。。。
程序代码:#include<stdio.h>
#include<conio.h>
void main(void){
int M[5][5],Mk[5][5],MKK[5][5],MKKK[5][5],i,j,p;
M[0][0]=0;M[0][1]=0;M[0][2]=0;M[0][3]=0;M[0][4]=1;
M[1][0]=1;M[1][1]=0;M[1][2]=1;M[1][3]=0;M[1][4]=0;
M[2][0]=0;M[2][1]=0;M[2][2]=0;M[2][3]=0;M[2][4]=1;
M[3][0]=1;M[3][1]=0;M[3][2]=1;M[3][3]=0;M[3][4]=0;
M[4][0]=0;M[4][1]=1;M[4][2]=0;M[4][3]=1;M[4][4]=0;
for(i=0;i<5;i++){
for(j=0;j<5;j++){Mk[i][j]=0;
for( p=0;p<5;p++)
Mk[i][j]=Mk[i][j]+M[i][p]*M[p][j];
}
}
for(i=0;i<5;i++){
for(j=0;j<5;j++){MKK[i][j]=0;
for( p=0;p<5;p++)
MKK[i][j]=MKK[i][j]+Mk[i][p]*M[p][j];
}
}
for(i=0;i<5;i++){
for(j=0;j<5;j++){MKKK[i][j]=0;
for( p=0;p<5;p++)
MKKK[i][j]=MKKK[i][j]+MKK[i][p]*M[p][j];
}
}
for(i=0;i<5;i++){
for(j=0;j<5;j++)
printf("%8d",MKKK[i][j]);
printf("\n");}
getch();
}








