A voir également:
- [C] Mini programme ( demande d'aide )
- Opera mini pc - Télécharger - Navigateurs
- Meilleur mini pc - Accueil - Guide ordinateurs
- Programme demarrage windows 10 - Guide
- Geekom mini it11 - Accueil - Guide ordinateurs
- Geekom mini it13 - Accueil - Ordinateurs
23 réponses
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
30 déc. 2007 à 20:10
30 déc. 2007 à 20:10
quel est la partie qui te pose probleme ?
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
30 déc. 2007 à 20:23
30 déc. 2007 à 20:23
pour verifier qu'elles sont differentes tu parcours des deux matrices avec des boucle for et tu verifie que toutes leur cases ne sont pas identiques
pour la trouver le max de la matrice produit tu parcours ta matrice avec des boucle for et tu fais des comparaisons avec une variable max pour trouver le max de la matrice
voila essaye de faire un programme avec ces explications et post le resultat on corrigeras tes erreurs en t'expliquant...
bonne chance ;)
pour la trouver le max de la matrice produit tu parcours ta matrice avec des boucle for et tu fais des comparaisons avec une variable max pour trouver le max de la matrice
voila essaye de faire un programme avec ces explications et post le resultat on corrigeras tes erreurs en t'expliquant...
bonne chance ;)
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()
}
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()
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
30 déc. 2007 à 21:13
30 déc. 2007 à 21:13
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)
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; }
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");
}
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");
}
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
30 déc. 2007 à 22:11
30 déc. 2007 à 22:11
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 ;)
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 ;)
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
30 déc. 2007 à 22:36
30 déc. 2007 à 22:36
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...
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]);
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
31 déc. 2007 à 00:10
31 déc. 2007 à 00:10
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:
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"); }
Ca marche mais la multiplication de deux matrices
n'es pas comme la multiplication direct
voilà un exemple de calcul de deux matrice
n'es pas comme la multiplication direct
voilà un exemple de calcul de deux matrice
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
31 déc. 2007 à 01:15
31 déc. 2007 à 01:15
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 ça
essaye ça
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<n2;k++) { mat3[i][j]+=mat1[i][k]*mat2[k][j]; } printf("%f ",mat3[i][j]); } printf("\n"); }
Ca marche
jte remercie infiniment mype pour ton aide, j'ai apris d'autre chose en langage C grace a toi
merci encore
;)
jte remercie infiniment mype pour ton aide, j'ai apris d'autre chose en langage C grace a toi
merci encore
;)
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
31 déc. 2007 à 01:32
31 déc. 2007 à 01:32
de rien ;)