Bonjour à tous ,
Je débute et j'ai un problème , comment fait t'on pour afficher ça ?
J'ai essayé des choses mais je n'obtient rien sous forme de fraction
Bonjour à tous ,
Je débute et j'ai un problème , comment fait t'on pour afficher ça ?
J'ai essayé des choses mais je n'obtient rien sous forme de fraction
Bonjour.
L'exercice est un peu flou, mais ça a l'air d'être une simple fonction d'entrée/sortie, c'est-à-dire qu'il faut avec les fonctions type scanf() et printf(), avec éventuellement une condition (un if) qui vérifie si un slash a été rentré.
Est-ce que tu as déjà utilisé ces fonctions ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include <stdio.h> int main(void) { char tab[32]; printf("? "); scanf("%s", tab); printf("Vous avez saisie : %s\n", tab); return 0; }
Site : http://chgi.developpez.com
Pourquoi faire simple quand on peut faire compliqué ? (Jacques Rouxel)
Bonsoir ,
Ils me demandent de saisir une valeur a et une valeur b puis de l'afficher sous forme de fraction
J'ai regardé le corriger, mais je ne comprends pas la signification du while(getchar() != '\n') ; même du while tous court![]()
comment vous avez trouver le char tab[32] pour la fraction ? sa semble plus simple effectivement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include <stdio.h> int main(void) { char tab[32]; printf("? "); scanf("%s", tab); printf("Vous avez saisie : %s\n", tab); return 0; }
Site : http://chgi.developpez.com
Pourquoi faire simple quand on peut faire compliqué ? (Jacques Rouxel)
La solution de @CGi (qui n'avait pas toutes les informations lorsqu'il a proposé son code) est sans doute la plus simple pour entrer la fraction, mais elle récupère des caractères, pas des entiers. Et donc pour calculer le pgcd des deux nombres, il va falloir des opérations supplémentaires pour transformer les caractères en entiers, que tu ne connais sans doute pas vu ton niveau.
A part ça, le corrigé n'est pas terrible.
Edit: pour ta question: un %i dans un scanf() ne prend en compte que des chiffres (et + et -, et aussi 0x et des chiffres hexadécimaux). Mais lorsque tu valides ton entrée, tu appuies sur la touche enter, qui reste dans le buffer du clavier. Et donc il faut éliminer ce enter ('\n') pour vider le buffer du clavier.
Je suis déjà entrain d'apprendre le langage C mais je n'ai pas fait grand-chose pour le moment qui ressemble à ça , je suis ouvert si vous avez des recommandations de chaîne ou de livre pour mieux s'y entraîner
, Je n'ai pas vraiment compris à quoi sert chaque terme dans "while(getchar()") != '\n') " et ça ferait quoi si on enlève
Il y a plusieurs sites qui contiennent toute la documentation des langages C et C++: https://cplusplus.com/ et https://en.cppreference.com/w/
documentation de getchar, CPlusPlus en anglais
Ensuite, il faut utiliser Google et les forums Internet pour trouver les réponses, et notamment stackoverflow
getchar does not stop when using scanf
En gros, la fonction scanf va prendre sur l'entrée tout ce qu'elle l'intéresse (par exemple tout jusqu'au premier espace) et va laisser le reste de la ligne.
Le while permet de nettoyer l'entrée jusqu'à la fin de la ligne "\n".
Et sinon, une fraction, ce n'est jamais qu'une division "en attente": 3/2 c'est deux entiers, 3 et 2, et la notation 3/2 désigne le résultat de la division de 3 par 2.
Du coup, afficher sur l'un après l'autre 3, '/' puis 2 donnerait ce résultat.
La fonction printf permet de produire des phrases entières, avec plusieurs motifs, et surtout avec du texte intercalaire.
Le caractère espace peut servir à séparer des champs de saisie.
Donc ici il faut saisir un entier, un espace, un signe (+,-,/,*), un espace, un entier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 char op; int a, b, r; // saisie et stockage des éléments (par pointeurs donc &) scanf("%d %c %d",&a,&op,&b); // l'opération a été stockée dans la variable op switch(op) { case '+' : r = a + b; break; case '-' : r = a - b; break; case '/' : if(b != 0) { r = a / b; } break; case '*' : r = a * b; break; } printf("\nLe resultat est %d", r);
Partager