Sunday, March 6, 2016
22) Ridicarea unei matrice la o putere data
#include <stdio.h>
#include <stdlib.h>
void citireMatrice(int a[20][20], int *n) {
int i,j;
printf("Numarul de linii & coloane: "); scanf("%d", &(*n));
for(i=0;i<*n;i++) {
for(j=0;j<*n;j++) {
printf("a[%d][%d] = ", i,j);
scanf("%d", &a[i][j]);
}
}
}
void afisareMatrice(int a[20][20], int n) {
int i,j;
for(i=0;i<n;i++) {
for(j=0;j<n;j++) {
printf(" %d ", a[i][j]);
}
puts(" ");
}
}
void putereMatrice(int a[20][20], int n, int p) {
// <!--- generarea matricei unitate--->
int i,j,q,k,c[20][20];
int b[20][20];
for(i=0;i<n;i++) {
for(j=0;j<n;j++) {
b[i][j]=(i==j);
}
} // <!--- generarea matricei unitate--->
puts("Afisarea matricei unitate...");
for(i=0;i<n;i++) {
for(j=0;j<n;j++) {
printf(" %d ",b[i][j]);
}
puts(" ");
}
for(q=0;q<p;q++) {
for(i=0;i<n;i++)
for(j=0;j<n;j++) {
c[i][j]=0;
for(k=0;k<n;k++)
c[i][j] = c[i][j]+b[i][k]*a[k][j];
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
b[i][j]=c[i][j];
}
printf("Afisarea matricea ridicata la puterea %d \n", p);
for(i=0;i<n;i++) {
for(j=0;j<n;j++) {
printf(" %d ",b[i][j]);
}
puts(" ");
}
}
void main(){
int a[20][20];
int i,j,n,p;
citireMatrice(a,&n);
afisareMatrice(a,n);
printf("Puterea este: "); scanf("%d", &p);
putereMatrice(a,n,p);
}
Labels:
alocare statica,
matrice,
putere,
subprogram
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment