Programme C avec pointeurs pour calculer les nombres parfait
M
-
len3158 Messages postés 3 Statut Membre -
len3158 Messages postés 3 Statut Membre -
Bonjour,
Je dois ecrire un programme en c qui comporte une fonction de type void. Cette fonction doit permettre de calculer et de transmettre via pointeur la somme des diviseurs propres d'un entier donné.
N.B.
un nombre parfait est un nombre dont la valeur est égale à la somme de ses diviseurs propres
J'ai essaye un programme sans les pointeurs et voici ce que ca ma donne:
#include <stdio.h>
int somme2(int nbrparfait)
{
int somme=0;
int i;
for (i=1 ; i<nbrparfait ; i++)
{
if (nbrparfait%i==0) somme += i;
}
return somme;
}
int main()
{
char rep;
do
{
int nbrparfait;
printf("Entrer un nombre parfait:");
scanf("%d", &nbrparfait);
printf("\nLa somme des diviseurs du nombres parfait est %d.", somme2(nbrparfait));
printf("\nVoulez-vous continuer(o/n)?");
scanf(" %c",&rep);
}
while(rep == 'o');
system("pause");
return 0;
}
Merci d'avance!
Je dois ecrire un programme en c qui comporte une fonction de type void. Cette fonction doit permettre de calculer et de transmettre via pointeur la somme des diviseurs propres d'un entier donné.
N.B.
un nombre parfait est un nombre dont la valeur est égale à la somme de ses diviseurs propres
J'ai essaye un programme sans les pointeurs et voici ce que ca ma donne:
#include <stdio.h>
int somme2(int nbrparfait)
{
int somme=0;
int i;
for (i=1 ; i<nbrparfait ; i++)
{
if (nbrparfait%i==0) somme += i;
}
return somme;
}
int main()
{
char rep;
do
{
int nbrparfait;
printf("Entrer un nombre parfait:");
scanf("%d", &nbrparfait);
printf("\nLa somme des diviseurs du nombres parfait est %d.", somme2(nbrparfait));
printf("\nVoulez-vous continuer(o/n)?");
scanf(" %c",&rep);
}
while(rep == 'o');
system("pause");
return 0;
}
Merci d'avance!
2 réponses
-
Salut,
Tu devrais essayer un truc du genre :
#include <stdio.h> void somme2(int nbrparfait, int * somme) { int i; for (i=1 ; i<nbrparfait ; i++) { if (nbrparfait%i==0) somme += i; } return; } int main() { char rep; do { int nbrparfait, somme = 0; printf("Entrer un nombre parfait:"); scanf("%d", &nbrparfait); printf("\nLa somme des diviseurs du nombres parfait est %d.", somme2(nbrparfait, &somme)); printf("\nVoulez-vous continuer(o/n)?"); scanf(" %c",&rep); } while(rep == 'o'); system("pause"); return 0; }
Pas certain que ca marche je l'ai pas testé ( et ca fait un petit moment que j'ai aps fais de C ) -
Salut!
Bizzare je me retrouve ayant le même problème. Ne seriez-vous pas en ITF1166 à l'Université de Montréal par hasard?