مصفوفة حساب التفاضل والتكامل في C ++ - ضرب مصفوفتين

< div class = "الفاصل" style = "clear: كلاهما ؛ محاذاة النص: الوسط؛" >ضرب المنتج لمصفوفتين في C ++< / a>< / div>

< / div>

< / div>
#include< stdio.h> < فرع />#include< stdlib.h> < فرع />#include < ايوستريم> 
باستخدام مساحة الاسم المنقولة جنسيا ؛
typedef هيكل المصفوفة
{
int line ؛ < br / > عمود int ؛ <بيانات BR / > int ** ؛ مصفوفة

struct matrix creer_matrice(صف int، عمود int){
هيكل مصفوفة m;
m.row = صف;
m.column = عمود ؛
m.data = (int **) malloc (m.line * sizeof (int *)) ؛
ل (int i = 0 ؛ i< m.row ؛ ++ i) {
// تهيئة المربعات إلى 0 باستخدام calloc
m.data [i] = (int *) calloc (m.column ، sizeof (int)) ؛
}
إرجاع m ؛
}

void afficher_matrice(matrix M) {
for (int i = 0 ؛ i < م. خط. i++) {
for(int j = 0; j < م. القولون. j++) {
التكلفة < < M.data[i][j] ; تكلفة < / > < < "\t";
} < br / > // فاصل الأسطر < br / > التكلفة < < "\n"; تكلفة
} < br / > < < "\n";
}

هيكلية مصفوفة المنتج (المصفوفة ألف، المصفوفة باء)
{
المصفوفة C = creer_matrice(A.row, B.column);
for(int I = 0; أنا < أ. خط. I++)
for(int J = 0; جي < ب. العمود؛ J++)
{
C.data[I][J] = 0;
for(int K = 0; ك < أ. العمود؛ K++)
{
C.data[I][J] += A.data[I][K] * B.data[K][J];
}
}
إرجاع C ؛
}

int main (int argc ، char * argv [])
{
/*
matrix A
* /
matrix A = creer_matrice (4,3) ؛
srand (time (NULL)) ؛
ل (int i = 0 ؛ i< أ. خط. i++)
for(int j=0; j< أ. العمود؛ j++)
//قم بإنشاء أرقام عشوائية بين 0 و 20 واطرح 10
// للحصول على أرقام سالبة
// على سبيل المثال: إذا كان rand يولد 74 ثم 74-100 = -36
A.data[i][j] = rand()٪20-10;
afficher_matrice(A)؛

/*
المصفوفة الثانية
*/
المصفوفة B = creer_matrice(3.5);
srand (time (NULL)) ؛
ل (int i = 0 ؛ i< ب. خط. i++)
for(int j=0; j< ب. العمود؛ j++)
//قم بإنشاء أرقام عشوائية بين 0 و 20 واطرح 10
// للحصول على أرقام سالبة
// على سبيل المثال: إذا كان rand يولد 74 ، فإن 74-100 = -36
B.data [i] [j] = rand ()٪ 20-10 ؛
afficher_matrice(B);

// product
// matrix C = المنتج (A ، B) ؛
//afficher_matrice(C);
afficher_matrice (الطاقة (A)) ؛
النظام ("وقفة") ؛
} < BR / >< / قبل >< / DIV >< / DIV>