Tom's Guide > Forum > Programmation > Aide - Langage C - Fonction scanf

Aide - Langage C - Fonction scanf

Forum Programmation : Aide - Langage C - Fonction scanf

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour,

Je suis en DUT Info et j'apprends le C. Faute d'une rhino, je n'ai pas pu être présent à un TP et donc j'me suis retrouvé un peu à la ramasse. Par chance, ils sont sur le net, donc j'peux m'entrainer à la maison, mais je bloque sur un truc et j'y arrive absolument pas et j'aimerai votre aide. :)

Ecrire un programme qui saisit deux entiers a et b positifs (le deuxième non nul) et qui affiche leur division euclidienne sous la forme a=b.q+r

J'ai essayé 10'000'000 de trucs et ça n'a jamais marché, j'vais juste vous mettre ce que j'ai actuellement parce que je désespère un peu :s.

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

int main(void)

{

int a,b,q,r;
q=(a/b);
r=a-(b*q);

printf("Entrer deux entiers a et b : " );
scanf("%d %d",&a,&b);
printf("La division euclienne de a par b est : %d=%d.%d+%d\n",a,b,q,r);

return EXIT_SUCCESS;

}

Il est très fort probable qu'il y ait beaucoup d'erreurs, mais comme j'fais que apprendre (2 semaine même pas), bah j'ai un peu de mal, mais j'suis prêt à recevoir des conseils.

Merci à vous,

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Le programme, une fois compilé, s'exécute ligne par ligne en commençant par le main:
1. "int a,b,q,r;" déclaration sur la pile (variable locale à la fonction courante) des entiers a, b, q et r. Ces valeurs sont initialisé à 0 ou laissé à la valeur aléatoire qui se trouve en mémoire (dépend du compilateur et du mode de compilation)
2. "q=(a/b)" calcule la division entière entre a et b. Problème: ici, a et b sont soient à 0 soit ont des valeurs aléatoire, donc ce calcul ne sert à rien. Si, par hasard, b=0 alors ton programme soulève une exception de division par 0.
3. "r=a-(b*q); " idem, ne sert à rien vu que a,b et q ont n'importe quoi comme valeur.
4. "printf("Entrer deux entiers a et b : " ); " affiche le message
5. "scanf("%d %d",&a,&b);" met dans a et b les 2 valeurs décimales entrées par l'utilisateur
=> maintenant que a et b sont initialisés, c'est maintenant qu'il faut faire les calculs
6. "printf("La division euclienne de a par b est : %d=%d.%d+%d\n",a,b,q,r); " ton programme affiche les valeurs bidon si b!=0 et si le calcul est fait avant l'initialisation de la variable.
7. "return EXIT_SUCCESS; " mort du processus.

Voilà, sinon ton calcul de r est bon, mais il y a plus rapide avec le modulo (calcul du reste de la division): r = a % b;

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Tom's Guide > Forum > Programmation > Aide - Langage C - Fonction scanf
Aller à :

Il y a 552 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Liens