Le nombre parfait entre deux nombre n,m;

Fermé
chaimaebel Messages postés 12 Date d'inscription samedi 18 novembre 2017 Statut Membre Dernière intervention 8 janvier 2018 - Modifié le 18 nov. 2017 à 12:58
 chaimaebel - 19 nov. 2017 à 21:04
Bonjour,

voilaa j'ai essayé de le faire ! mais lorsque je saisis les valeur de n,m sa se bloque ! svp aide moi !


#include <stdio.h>
void echange2(int *n,int *m){
 int x;
 if(*n>*m){
  x=*n;


*n=*m;

*m=x;
 }
 

}

int nbparfait(int n,int m){
 int cpt,i;
 for(i=n,cpt=0;i<=m;i++){
  if(i=SOMDIV(n)){
   cpt=cpt+1;
  }
 }return cpt;
}
int SOMDIV(int n){
 int i,s;
 for(i=2,s=1;i<=n/2;i++){
  if((n%i)==0){
   s=s+i;
  }
 }return s;}


main(){
 int n,m;
 printf("entre la valeur de n : ");
 scanf("%d",&n);
 printf("entre la valeur de m : ");
 scanf("%d",&m);
  echange2(&n,&m);
 printf("le nombre des nombres parfait qui sont entre %d et %d est : ",n,m,nbparfait(n,m));
}


2 réponses

Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
19 nov. 2017 à 20:49
Bonjour,
Ligne 19, tu souhaites tester si deux valeurs sont égales. Le simple '=' est l'opérateur d'affectation pas de comparaison. Le compilateur a dû te prévenir de cette erreur par un warning.
Ligne 40/41, il manque le dernier %d
Et soigne ton indentation, pour toi et ceux qui auraient à te lire.
0
Mercii ,Beaucoup Beaucoup!
0