Nombre parfait

Résolu/Fermé
Signaler
Messages postés
14
Date d'inscription
mardi 5 avril 2016
Statut
Membre
Dernière intervention
20 décembre 2016
-
Messages postés
14
Date d'inscription
mardi 5 avril 2016
Statut
Membre
Dernière intervention
20 décembre 2016
-
svp mon programme veux pas marcher
aide moi svp


#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

main()
{ int i,s=0,n;
printf("donner n:");
scanf("%d",&n);
while(i<n)
{ if(n%i==0)
 {s=s+i;}
i++;}
if(n=s){printf(" n est parfait ");}
else {printf(" n est non parfait ");}
 getch();
}


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 797
Bonjour,

#include<conio.h>
Non standard. A supprimer.

main()
Non standard. Le bon prototype est : int main (void)

while(i<n)
i n'est pas initialisé. Au vu de l'exercice, il faut que tu cases i=1; juste avant le while.

if(n=s){printf(" n est parfait ");}
L'opérateur de comparaison en C est le double égal (==).
=> if (n==s)...

getch();
Non standard. Utilise plutôt system("pause");

N'oublie pas d'afficher un '\n' à la fin de ta dernière phrase.

Il manque le return 0; final. À mettre avant l'accolade finale.

Tu peux par exemple mettre : putchar('\n'); avant le return 0; ou mettre un '\n' à la fin des 2 phrases se terminant par "parfait".

Cdlt,
Messages postés
14
Date d'inscription
mardi 5 avril 2016
Statut
Membre
Dernière intervention
20 décembre 2016

merci beaucoup il marche maintenant



#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

main()
{ int i=1,s=0,n;
printf("donner n:");
scanf("%d",&n);
while(i<n)
{ if(n%i==0)
{s=s+i;}
i++;}
if(n==s){printf(" n est parfait ");}
else {printf(" n est non parfait ");}
getch();
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 797 >
Messages postés
14
Date d'inscription
mardi 5 avril 2016
Statut
Membre
Dernière intervention
20 décembre 2016

Il marche peut-être mais le programme n'est pas correct pour autant.
Ce n'est pas du C standard.
Messages postés
14
Date d'inscription
mardi 5 avril 2016
Statut
Membre
Dernière intervention
20 décembre 2016

tu peux m aider je ne sais c est quoi un C standard
Messages postés
171
Date d'inscription
dimanche 23 février 2014
Statut
Membre
Dernière intervention
29 juillet 2017
10
Ben, comme il marche marques résolu ;)

--