Çok Boyutlu Dizileri Kullanarak Matrisi Çarpmak için C Programı

Bu program sırasıyla r1 * c1 ve r2 * c2 olmak üzere iki matris alır. Ardından, program bu iki matrisi (mümkünse) çarpar ve ekranda görüntüler.

İki matrisi çarpmak için, birinci matrisin sütun sayısının, ikinci matrisin satır sayısına eşit olması gerekir. Bu program, ilk matrisin sütun sayısı, ikinci matrisin satır sayısına eşit oluncaya kadar hatayı görüntüler.

#include <stdio.h>

int main()
{
    int a[10][10], b[10][10], result[10][10], r1, c1, r2, c2, i, j, k;

    printf("İlk matris için satır ve sütunu girin: ");
    scanf("%d %d", &r1, &c1);

    printf("İkinci matris için satır ve sütunu girin: ");
    scanf("%d %d",&r2, &c2);

  
    while (c1 != r2)
    {
        printf("Hata! birinci matrisin sütunu ikinci matrisin satırına eşit değil..\n\n");
        printf("İlk matris için satır ve sütunu girin: ");
        scanf("%d %d", &r1, &c1);
        printf("İkinci matris için satır ve sütunu girin: ");
        scanf("%d %d",&r2, &c2);
    }


    printf("\nMatris 1 elemanlarını girin:\n");
    for(i=0; i<r1; ++i)
        for(j=0; j<c1; ++j)
        {
            printf("elemanları girin a%d%d: ",i+1, j+1);
            scanf("%d", &a[i][j]);
        }


    printf("\nMatris 2 elemanlarını girin:\n");
    for(i=0; i<r2; ++i)
        for(j=0; j<c2; ++j)
        {
            printf("elemanları girin b%d%d: ",i+1, j+1);
            scanf("%d",&b[i][j]);
        }

 
    for(i=0; i<r1; ++i)
        for(j=0; j<c2; ++j)
        {
            result[i][j] = 0;
        }


    for(i=0; i<r1; ++i)
        for(j=0; j<c2; ++j)
            for(k=0; k<c1; ++k)
            {
                result[i][j]+=a[i][k]*b[k][j];
            }


    printf("\nMatrisin çıktısı:\n");
    for(i=0; i<r1; ++i)
        for(j=0; j<c2; ++j)
        {
            printf("%d  ", result[i][j]);
            if(j == c2-1)
                printf("\n\n");
        }
    return 0;
}

Çıktısı :

İlk matris için satır ve sütunu girin: 3
2
İkinci matris için satır ve sütunu girin: 3
2
Hata! birinci matrisin sütunu ikinci matrisin satırına eşit değil.

İlk matris için satır ve sütunu girin: 2
3
İkinci matris için satır ve sütunu girin: 3
2

Matris 1 elemanlarını girin:
elemanları girin a11: 3
elemanları girin a12: -2
elemanları girin a13: 5
elemanları girin a21: 3
elemanları girin a22: 0
elemanları girin a23: 4

Matris 2 elemanlarını giriniz:
elemanları girin b11: 2
elemanları girin b12: 3
elemanları girin b21: -9
elemanları girin b22: 0
elemanları girin b31: 0
elemanları girin b32: 4

Matrisin çıktısı:
24  29

6  25