#include<stdio.h>

void func(float a[10][10],int n){
int i,j,k;
float c[10][10];

for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
c[i][j]=0;
for(k=1;k<=n;k++){
c[i][j]+=a[i][k]*a[k][j];
}
}
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
a[i][j]=c[i][j];
}
}
}
main(){
float a[10][10];
int i,j,n;
printf("please input n:");
scanf("%d",&n);
printf("please input a\n");
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
printf("a[%d][%d]=",i,j);
scanf("%f",&a[i][j]);
}
}
printf("\nA=\n");
for(i=1;i<=n;i++){
printf("|");
for(j=1;j<=n;j++){
printf("%4.1f",a[i][j]);
}
printf("|");
printf("\n");
}
func(a,n);
printf("\nA^n=\n");
for(i=1;i<=n;i++){
printf("|");
for(j=1;j<=n;j++){
printf("%4.1f",a[i][j]);
}
printf("|");
printf("\n");
}
}
これだとAの2乗が求まりますが、n乗にするにはどうすればいいですか?