[C] Mini programme ( demande d'aide )
Bonjour,
Svp aidé moi a créer un programme qui saisit deux matrices de reél
- qui vérifie s'elle sont différentes.
-qui calcul et affiche leur produit.
-qui retourne le maximum de la matrice produit.
Svp aidé moi a créer un programme qui saisit deux matrices de reél
- qui vérifie s'elle sont différentes.
-qui calcul et affiche leur produit.
-qui retourne le maximum de la matrice produit.
Configuration: Windows XP Internet Explorer 6.0
23 réponses
-
qui peu méxpliqué skona fé dans se programme il faut que je fas un rapor .
-
merci mype de ton aide.
il reste le dernier parti :-qui retourne le maximum de la matrice produit. -
toi...on va pas te faire tout le travail sans que tu reflechisses
-
salut,
qui peut terminer la derniere partie :- qui retourne le maximum de la matrice produit -
de rien ;)
-
Ca marche
jte remercie infiniment mype pour ton aide, j'ai apris d'autre chose en langage C grace a toi
merci encore
;) -
dans ce cas ce que tu as fait était presque bon tu avais juste mal placé ton printf de ta matrice 3 et tu as mis mat1 au lieu de mat3
essaye çaprintf("le produit des deux matrices\n"); for (i=0;i<n1;i++) { for (j=0;j<n2;j++) { mat3[i][j]=0; for (k=0;k<n2;k++) { mat3[i][j]+=mat1[i][k]*mat2[k][j]; } printf("%f ",mat3[i][j]); } printf("\n"); } -
http://www.infres.enst.fr/~kaced/ifitep/pages/cours-c/prg-c72.htm#Heading153
-
Ca marche mais la multiplication de deux matrices
n'es pas comme la multiplication direct
voilà un exemple de calcul de deux matrice -
il faut enlever ta variable k elle ne sert rien
quand ta boucle commence a 0 elle doit s'arreter a <n1 pas <=n1
essaye ça:
for (i=0;i<n1;i++) { for (j=0;j<n2;j++) { mat3[i][j]=mat1[i][j]*mat2[i][j]; printf("%f ",mat3[i][j]); } printf("\n"); } -
Personne peut Couriger ??
-
voilà la suite ( le produit mais il ne fonctionne pas ) meme si j'ai rester trop de temps :S
#include<stdio.h> int main() { int n1,n2,n3,i,j,k,different=0; float mat1[50][50],mat2[50][50],mat3[50][50]; printf("saisir le nombre de ligne des matrices: "); scanf("%d",&n1); printf("saisir la nombre de colonne des matrices: "); scanf("%d",&n2); for(i=0;i<n1;i++) { for(j=0;j<n2;j++) { printf("saisir mat1[%d][%d]: ",i,j); scanf("%f",&mat1[i][j]); printf("saisir mat2[%d][%d]: ",i,j); scanf("%f",&mat2[i][j]); } } printf("\n---matrice 1----\n"); for(i=0;i<n1;i++) { for(j=0;j<n2;j++) { printf("%f ",mat1[i][j]); } printf("\n"); } printf("----matrice 2----\n"); for(i=0;i<n1;i++) { for(j=0;j<n2;j++) { printf("%f ",mat2[i][j]); } printf("\n"); } for(i=0;i<n1;i++) for(j=0;j<n2;j++) if (mat1[i][j]==mat2[i][j]) different++; if(different!=(n1*n2)) printf("\nles deux matrices sont différents"); else printf("\nles deux matrices sont identiques\n"); printf("le produit des deux matrices\n"); for (i=0;i<=n1;i++) { for (j=0;j<=n2;j++) { mat3[i][j]=0; for (k=0;k<n3;k++) { mat3[i][j]=mat1[i][k]*mat2[k][j]; } } }printf("%f ",mat1[i][j]); -
Merci J'ai bien compris ;)
-
c'est pas une fonction dans ta matrice il y a n1 * n2 case par ex si ta 3 ligne n1=3 et 3 colonne n2=3 tu a n1*n2 = 3 * 3 =9 t as donc 9 cases dans ta matrice la variable different verifie le nombre de case identique si different egal 9 alors toutes les cases sont identique donc les deux matrice sont identiques sinon elles sont differentes...
-
cases si different = n1*n2
sa veut dire quoi cette fonction ? -
pour dire que les deux matrice sont identique il faut que toutes leur case soit identique c'est a dire mat1[0][0] egale a mat2[0][0] etc..
donc on parcours chaque case des deux matrices et si leur case est identique on rajoute 1 a la variable different
donc lorsqu'on aura fini de parcourir toutes les cases si different = n1*n2 c'est a dire si toutes les case sont identiques alor les deux matrice sont identiques sinon elles sont differentes
voila j'espere que tu as compris mon exppliction ;) -
Salut je peux savoir pk tu as utilisé
for(i=0;i<n1;i++)
for(j=0;j<n2;j++)
if (mat1[i][j]==mat2[i][j])
different+=1;
if(different!=(n1*n2))
printf("\nles deux matrices sont différents");
else
printf("\nles deux matrices sont identiques");
} -
Merci mype pour ton aide j'ai compris
je vais essayer avec les autres partie -
la syntxe de ton scanf n'est pas correct il faut que tu revoies ça
ensuite il faudrait que tu rajoutes des boucle pour voir ce que donne tes matrices a m'affichage
puis il te manque une variable pour tester les differentes cases pour determiner si les matrices sont identique ou pas
essaye ça ( si tu n'as pas compris quelquechose n'hesites pas a demander)#include<stdio.h> int main() { int n1,n2,i,j,different=0; float mat1[50][50],mat2[50][50]; printf("saisir le nombre de ligne des matrices: "); scanf("%d",&n1); printf("saisir la nombre de colonne des matrices: "); scanf("%d",&n2); for(i=0;i<n1;i++) { for(j=0;j<n2;j++) { printf("saisir mat1[%d][%d]: ",i,j); scanf("%f",&mat1[i][j]); printf("saisir mat2[%d][%d]: ",i,j); scanf("%f",&mat2[i][j]); } } printf("\n---matrice 1----\n"); for(i=0;i<n1;i++) { for(j=0;j<n2;j++) { printf("%f ",mat1[i][j]); } printf("\n"); } printf("----matrice 2----\n"); for(i=0;i<n1;i++) { for(j=0;j<n2;j++) { printf("%f ",mat2[i][j]); } printf("\n"); } for(i=0;i<n1;i++) for(j=0;j<n2;j++) if (mat1[i][j]==mat2[i][j]) different+=1; if(different!=(n1*n2)) printf("\nles deux matrices sont différents"); else printf("\nles deux matrices sont identiques"); return 0; } -
la premiere partie
il fonctionne pas :S
#include<stdio.h>
main()
{
int n1,n2,i,j;
float mat1[50][50],mat2[50][50];
printf("saisir le nombre de ligne matrice 1");
scanf("%d",&n1);
printf("saisir la nombre de colonne matrice 2");
scanf("%d",&n2);
for(i=0;i<n1;i++)
{
for(j=0;j<n2;j++)
{
printf("saisir mat1[%d][%d]",i,j);
scanf("%d %d",&mat1[i][j]);
}
printf("saisir mat2[%d][%d]",i,j);
scanf("%d %d";&mat2[i][j]);
}
if (mat1[i][j]!=mat2[i][j]))
printf("les deux matrices sont différents");
getchar();
getchar()
}
- 1
- 2
Suivant