Besoin correction d'un programme simple en c

Fermé
Utilisateur anonyme - 21 janv. 2009 à 14:59
 Utilisateur anonyme - 22 janv. 2009 à 08:07
Bonjour,
je débute tout juste dans la programmation en C et je m'entraine a faire des codes pour être bien sûr de mes bases, le problème c'est que je fais plein d'erreurs et que je n'ai personne pour me corriger, c'est pour ça que je me retourne vers vous, mes chers internautes.
je cherche a créer un logiciel pour connaitre la structure électronique d'un atome automatiquement. En gros, les atomes d'un atome s'organisent en différentes couches (K, L, M et d'autres mais je choisis celles-ci pour faire simple) K peut contenir 2 électrons maximum, L peut contenir 8 électrons maximum et M peut en contenir 18 mais on s'arrête a 8 parce que ça devient compliqué après, il faudrait rentrer les valeurs de tout les atomes un par un :s.
Mon logiciel pose la question "Entrer le nombre d'électrons d'un atome dont Z >= 18 : "et le pc lui répond "Voici la structure moléculaire de votre atome K = %ld, L = %ld, M = %ld"
voici mon code en 3 fichiers (entrainement programmation modulaire : je sais que ce n'est pas nécessaire d'utiliser 3 fichiers) :

main.c

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

int main(int argc, char *argv[])
{
    long electrons = 0, K = 0, L = 0, M = 0;
    printf ("Entrer le nombre d'electrons d'un atome dont Z >= 18 : ");
    scanf ("%ld", &electrons);
    printf ("\n");

    rangementElectrons(&electrons, &K, &L, &M);

    printf ("Voici la structure moleculaire de votre atome K = %ld, L = %ld, M = %ld\n\n", K, L, M);
    system("PAUSE");
    return 0;
}


electrons.c

#include <stdio.h>
#include <stdlib.h>
#include "electrons.h"

void rangementElectrons(long *pointeurElectrons, *pointeurK, *pointeurL, int* pointeurM)
{
    // Remplir K
    if (*pointeurElectrons <= 2)
{
        *pointeurK = *pointeurElectrons;
}

    // Remplir L
    else if (*pointeurElectrons <= 8)
{
        *pointeurK = 2;
        *pointeurL = *pointeurElectrons - 2;
}

    // Remplir M
    else if (*pointeurElectrons <= 18)
{
        *pointeurK = 2;
        *pointeurL = 8;
        *pointeurM = *pointeurElectrons - 10;
}

    // Autres cas
    else
{
        printf ("Entrez une valeur inferieur a 18");
}
}


electrons.h

#ifndef rangementElectrons
#define rangementElectrons

void rangementElectrons(long* pointeurElectrons,long* pointeurK,long* pointeurL,long* pointeurM);
#endif // rangementElectrons


merci d'avance,
bobspongieux
A voir également:

3 réponses

Utilisateur anonyme
21 janv. 2009 à 16:33
up
0
Salut,
T'es bien gentil mais ta question sur les électrons a déjà été traitée dans le post suivant:
http://www.commentcamarche.net/forum/affich 10606568 besoin d une correction simple en c
Ce n'est pas parce que tu as scindé le code en 3 fichiers qu'on va réétudier ton code; tu en as eu le principe, le programme, d'après tes dires à fonctionné, il va falloir que tu te débrouille un peu tout seul... mais en cas de difficultés on est là ;=)
0
Utilisateur anonyme
22 janv. 2009 à 08:07
merci loupius mais je reposte un message car je n'arrive pas a utiliser la programmation modulaire, j'ai bien respecté tout ce qu'on m' appris mais ça ne fonctionne pas :\
c'est pour ça que je vous demande de l'aide !
alors, encore une fois, pourriez-vous m'aider ?
merci d'avance
0