Matrice caré

mb42 Messages postés 553 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
A voir également:

3 réponses

the Lebanese Messages postés 269 Statut Membre 16
 
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 12 Statut Membre 17
 
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 269 Statut Membre 16
 
Faut pas donner direct la réponse. C'est pas cool
0
mb42 Messages postés 553 Statut Membre 7
 
merci c compilé
0