piyuvv
Centipat
- Katılım
- 20 Ocak 2024
- Mesajlar
- 11
Daha fazla
- Cinsiyet
- Kadın
- Meslek
- öğrenci
Matris çarpımı yapan bir kod yazdım fakat örneğin 2x3 mertebeden 1. satırı {1, 2, 3} 2. satırı {3, 2, 1} olan matrisle 3x2 mertebeden 1. satırı {3, 2} 2. satırı [1, 2} 3. satırı [1, 1} olan matrisi çarptığım zaman doğru yanıt döndürmüyor. Ama her ikisi de 3x3 mertebeden olan iki matrisi çarpınca cevap doğru çıkıyor. Sanırsam yalnızca aynı mertebeden kare matrislerin çarpımını doğru yapabiliyor. Her matrisi başarıyla çarpabilmesi için ne yapmam gerekli?
C:
#include <stdio.h>
#include <stdlib.h>
int main() {
int a, b, c;
int x[10][10],y[10][10],z[10][10];
int i, j,k;
printf("ilk matrisiniz kaca kac mertebeden olsun?\n\t"); scanf("%d%d",&a,&b);//axb
printf("ikinci matrisiniz %d x kac mertebeden olsun?\n\t",b); scanf("%d",&c);//bxc
printf("\n\t-ilk matris icin-\n");
for(i=0;i<a;i++){
for(j=0;j<b;j++){
printf("\n%d. satir %d. sutun:\t",i+1,j+1);
scanf("%d",&x[i][j]);
}
}
for(i=0;i<a;i++){
for(j=0;j<b;j++){
printf("%5d",x[i][j]);
}
printf("\n\n");}
printf("\n\t-ikinci matris icin-\n");
for(i=0;i<b;i++){
for(j=0;j<c;j++){
printf("\n%d. satir %d. sutun:\t",i+1,j+1);
scanf("%d",&y[i][j]);
}
}
for(i=0;i<b;i++){
for(j=0;j<c;j++){
printf("%5d",y[i][j]);
}
printf("\n\n");}
for(i=0;i<a;i++){
for(j=0;j<c;j++){
z[i][j]=0;
}
}
for(i=0;i<a;i++){//a satir b sutun b satir c sutun
for(j=0;j<c;j++){
for(k=0;k<a;k++){
z[i][j]+=(x[i][k]*y[k][j]);
}
}
}
for(i=0;i<a;i++){
for(j=0;j<c;j++){
printf("%5d",z[i][j]);
}
printf("\n\n");}
return 0;
}
Son düzenleyen: Moderatör: