Matrice caré

Fermé
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 - 31 oct. 2009 à 23:51
the Lebanese Messages postés 259 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 10 juillet 2014 - 1 nov. 2009 à 13:11
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

3 réponses

the Lebanese Messages postés 259 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 10 juillet 2014 16
1 nov. 2009 à 00:06
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
1
tadwarte Messages postés 10 Date d'inscription jeudi 22 octobre 2009 Statut Membre Dernière intervention 12 novembre 2009 17
1 nov. 2009 à 12:29
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
0
the Lebanese Messages postés 259 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 10 juillet 2014 16
1 nov. 2009 à 13:11
Faut pas donner direct la réponse. C'est pas cool
0
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 7
1 nov. 2009 à 13:02
merci c compilé
0