bonsoir,
je viens de réaliser un programme qui permet la multiplication de deux matrices en fonction des indices.Je veux maintenant la réaliser en fonction des pointeurs.J'arrive à faire l'allocation des matrices, le remplissage et aussi l'affichage avec les pointeurs, mais j'ai du mal à réaliser la partie de la multiplication.
*voila le programme en fonction des indices :
* voila le remplissage et l'affichage avec les pointeurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 #include<stdio.h> #include<conio.h> #include<stdlib.h> main() { int **A , **B, **C; int N,M,P,i,j,k,s,a,b; printf("entrer le nombre de ligne de la matrice A:"); scanf("%d",&N); printf("entrer le nombre de colonne de la matrice A et le nombre de ligne de la matrice B:"); scanf("%d",&M); printf("entrer le nombre de colonne de la matrice B:"); scanf("%d",&P); A=(int**)malloc(N*sizeof(int*)); for(i=0;i<N;i++) A[i]=(int*)malloc(M*sizeof(int)); B=(int**)malloc(M*sizeof(int*)); for(i=0;i<M;i++) B[i]=(int*)malloc(P*sizeof(int)); C=(int**)malloc(N*sizeof(int*)); for(i=0;i<N;i++) C[i]=(int*)malloc(P*sizeof(int)); //remplissage de la matrice A printf("remplissage de la matrice A.\n"); printf("\n"); for(i=0;i<N;i++){ for(j=0;j<M;j++){ printf("entrer la valeur d'indice %d,%d :",i,j); scanf("%d",*(A+i)+j); } printf("\n"); } //Affichage de la matrice A printf("\nla matrice A est:\n"); for(i=0;i<N;i++){ for(j=0;j<M;j++) printf("%6d",*(*(A+i)+j)); printf("\n"); } //remplissage de la matrice B printf("remplissage de la matrice B.\n"); for(i=0;i<M;i++){ for(j=0;j<P;j++){ printf("entrer la valeur d'indice %d,%d :",i,j); scanf("%d",*(B+i)+j); } printf("\n"); } //Affichage de la matrice B printf("\nla matrice B est:\n"); for(i=0;i<M;i++){ for(j=0;j<P;j++) printf("%6d",*(*(B+i)+j)); printf("\n"); } // La multiplication des deux matrices partie que j'arrive pas à transformer for(i=0;i<N;i++) { for(j=0;j<P;j++) { s=0; k=0; do { a=*(*(A+i)+k); b=*(*(B+k)+j); s+=a*b; k++; }while(k<M); *(*(C+i)+j)=s; getch(); } } //Affichage de la matrice C printf("\nla matrice C est:\n"); for(i=0;i<N;i++){ for(j=0;j<P;j++) printf("%6d",*(*(C+i)+j)); printf("\n"); } getch(); }
merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<ctype.h> main() { int **A , **B, **C; int N,M,P,i,j,s; printf("entrer le nombre de ligne de la matrice A:"); scanf("%d",&N); printf("entrer le nombre de colonne de la matrice A et le nombre de ligne de la matrice B:"); scanf("%d",&M); printf("entrer le nombre de colonne de la matrice B:"); scanf("%d",&P); A=(int**)malloc(N*sizeof(int*)); for(i=0;i<N;i++) A[i]=(int*)malloc(M*sizeof(int)); B=(int**)malloc(M*sizeof(int*)); for(i=0;i<M;i++) B[i]=(int*)malloc(P*sizeof(int)); C=(int**)malloc(N*sizeof(int*)); for(i=0;i<N;i++) C[i]=(int*)malloc(P*sizeof(int)); //remplissage de la matrice A printf("remplissage de la matrice A.\n"); printf("\n"); for(p=A;p<A+N;p++){ for(q=*p;q<*p+M;q++){ printf("entrer la valeur d'indice %d,%d :",p-A,q-(*p)); scanf("%d",q); } printf("\n"); } //Affichage de la matrice A printf("\nla matrice A est:\n"); for(p=A;p<A+N;p++){ for(q=*p;q<*p+M;q++) printf("%6d",*q); printf("\n"); } //remplissage de la matrice B printf("remplissage de la matrice B.\n"); for(p=B;p<B+M;p++){ for(q=*p;q<*p+P;q++){ printf("entrer la valeur d'indice %d,%d :",p-B,q-(*p)); scanf("%d",q); } printf("\n"); } //Affichage de la matrice B printf("\nla matrice B est:\n"); for(p=B;p<B+M;p++){ for(q=*p;q<*p+P;q++) printf("%6d \t",*q); printf("\n"); }
Partager