Matrice caré
mb42
Messages postés
553
Statut
Membre
-
the Lebanese Messages postés 269 Statut Membre -
the Lebanese Messages postés 269 Statut Membre -
Bonjour,
le but de mon programme est d'afficher la somme de deux diagonale d'une matrice caré(nombre des lignes = npmbre des colones)
c a dire si une matrice de cette forme :
1 2 3
5 6 8
3 7 5
elle doit m'afficher 24
mon programme est executable mais le resultat est incorecte
S1 est juste mais S2 est eroné
#include<stdio.h>
#include<conio.h>
main()
{int M[50][50],i,j,n,s1=0,s2=0,s3;
do
{printf("donner la taille du matrice :");
scanf("%d",&n);
}while((n<=0)&&(n>=0));
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
{printf("l'element %d %d",i,j);
scanf("%d",&M[i][j]);
}
}
for(i=0;i<n;i++)
{s1+=M[i][i];
}for(i=0;i<n;i++)
{
for(j=n-1;j>=0;j--)
{s2+=M[j][j];
}
}
printf("la somme 1 est %d \n",s1);
printf("la somme 2 est %d\n",s2);
s3=s1+s2;
printf("la somme finale est %d \n",s3);
printf("matrice resultat\n");
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
{printf("%d",M[i][j]);
}
printf("\n");
}
getch();
}
merci d'avance
le but de mon programme est d'afficher la somme de deux diagonale d'une matrice caré(nombre des lignes = npmbre des colones)
c a dire si une matrice de cette forme :
1 2 3
5 6 8
3 7 5
elle doit m'afficher 24
mon programme est executable mais le resultat est incorecte
S1 est juste mais S2 est eroné
#include<stdio.h>
#include<conio.h>
main()
{int M[50][50],i,j,n,s1=0,s2=0,s3;
do
{printf("donner la taille du matrice :");
scanf("%d",&n);
}while((n<=0)&&(n>=0));
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
{printf("l'element %d %d",i,j);
scanf("%d",&M[i][j]);
}
}
for(i=0;i<n;i++)
{s1+=M[i][i];
}for(i=0;i<n;i++)
{
for(j=n-1;j>=0;j--)
{s2+=M[j][j];
}
}
printf("la somme 1 est %d \n",s1);
printf("la somme 2 est %d\n",s2);
s3=s1+s2;
printf("la somme finale est %d \n",s3);
printf("matrice resultat\n");
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
{printf("%d",M[i][j]);
}
printf("\n");
}
getch();
}
merci d'avance
Configuration: Windows XP Firefox 3.0.14
3 réponses
-
Pour ton calcul de S2 tu as une double boucle for. C'est là l'erreur. Dis toi que tu fais pareil que pour S1. Si tu ne vois vraiment pas exécute ton programme en mode pas à pas
-
salut le pb que tu as est dans s2 comme a dit "The Lebanese" il faut ecrire :
for(i=0;i<n;i++)
{
for(j=n-1-i;j>=n-1-i;j--)
{
s2+=M[i][j];
}
}
si tu as encore des pb a comprendre dit le bon chance -