-
CréateurSujet
-
octobre 27, 2024 à 5:21 pm #43278BotParticipant
Hello 👋 J’essaye de faire une clalculatrice en C. En fait, je fais le TP de Zeste de Savoir 😅, je veux juste pouvoir réussir à le faire de moi même : https://zestedesavoir.com/tutoriels/755/le-langage-c-1/1042_les-bases-du-langage-c/4299_tp-une-calculatrice-basique/
En fait, mon code en est là :#inlude #inlude #inlude float old_result; void addition(float, float); void substration(float, float); void multipliation(float, float); void division(float, float); void modulo(float, float); // Prototypes des différents fontions d'opérations. void power(float, float); void fatorial(float); void pgd(float, float); void ppd(float, float); int main(void) { printf("n-----CALCULATOR-----nn"); // Présentation. printf("Addition : + n"); printf("Soustration : - n"); printf("Multipliation : * n"); printf("Division : / n"); printf("Reste de divison entière : # n"); printf("Puissane : ^ n"); printf("Fatorielle : ! n"); printf("PGCD : g n"); printf("PPCD : p nn"); printf("! Notation Polonaise Inverse !n"); while (true) { float number1 = 0.; float number2; har operator; printf("n> "); sanf("%f % %", &number1, &number2, &operator);
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
CréateurSujet
-
AuteurRéponses
-
-
octobre 27, 2024 à 5:21 pm #43279
swith (operator) { ase '+': addition(number1, number2); break; ase '-': substration(number1, number2); break; ase '*': multipliation(number1, number2); break; ase '/': division(number1, number2); break; ase '#': modulo(number1, number2); break; ase '^': power(number1, number2); break; ase '!': fatorial(number1); break; ase 'p': pgd(number1, number2); break; ase 'g': ppd(number1, number2); break; } } }
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 5:22 pm #43280
void addition(float number1, float number2) { float result = number1 + number2; old_result = result; printf("Résultat : %fn", result); } void substration(float number1, float number2) { float result = number1 - number2; old_result = result; printf("Résultat : %fn", result); } void multipliation(float number1, float number2) { float result = number1 * number2; old_result = result; printf("Résultat : %fn", result); } void division(float number1, float number2) { float result = number1 / number2; old_result = result; printf("Résultat : %fn", result); } void modulo(float number1, float number2) { long long result = (long long) number1 % (long long) number2; old_result = (float) result; printf("Résultat : %fn", (float) result); } void power(float number1, float number2) { float result = pow(number1, number2); old_result = result; printf("Résultat : %fn", result); } void fatorial(float number) { float result = 1.; for (float i = number; i > 0; --i) { result *= i; } old_result = result; printf("Résultat : %fn", result); } void pgd(float number1, float number2) { return; } void ppd(float number1, float number2) { return; }
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 5:23 pm #43281
PS : Mettez le problème est plein écran, pour voir tout le code.
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 5:25 pm #43282
Donc mon problème, c’est que par exemple, pour la factorielle, vu qu’elle prend, qu’un seul paramètre je ne sais pas comment faire. Autre exemple, si l’utilisateur entre uniquement `> 5 *`, le chiffre manquant est censé être le résultat de l’ancienne oprération.
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 5:25 pm #43283
Si j’ai la solution de l’un, j’ai celle de l’autre.
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 5:25 pm #43284
Si vous avez besoin de précisions, demandez moi, merci d’avance
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 5:27 pm #43285
En fait tu doit faire plusieurs scanf différent en fonction des cas
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 5:28 pm #43286
Tu les fait à la suite, si le scanf précédent n’a pas marché
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 5:28 pm #43287
Il y a d’autre solution aussi
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 5:29 pm #43288
Tu récupére la sortie pour savoir si tu as eu le bon nombre de paramètre
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 5:31 pm #43289
Après vu que c’est scanf(« %f %c %f ») et scanf(« %f %c ») tu peux potentiellement le faire en un, et juste regarder si tu as le bon nombre de paramètre
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 5:43 pm #43290
merci beaucoup de la réponse, je vais tester ça et je te fais un retour 👌
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 5:45 pm #43291
Dans le cas ou c’est plusieur c’est sscanf que vas devoir utiliser et tu récupère l’entrée dans un string
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 5:45 pm #43292
Mais si tu n’a pas des cas trop compliqué tu dois pouvoir le faire en un seul scanf
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:35 pm #43293
j’ai modifié mon code :
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:35 pm #43294
float number1 = 0.; float number2 = 0.; har operator; har quit_input; printf("n> "); int input = sanf("%f %f %", &number1, &number2, &operator); if (input == 1) { sanf("%", &operator); number2 = number1; number1 = old_result; } else if (input == 0) { sanf("%", &quit_input); if (quit_input == 'q') { printf("nProgramme terminée, au revoir !nn"); return 0; } else { printf("nVeuillez rentrer une opération.n"); ontinue; } }
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:35 pm #43295
-----CALCULATOR----- Pour quitter : q Addition : + Soustraction : - Multiplication : * Division : / Reste de divison entière : # Puissance : ^ Factorielle : ! PGCD : g PPCD : p ! Notation Polonaise Inverse ! > 5 ! Résultat : 1.000000 > 45 ! Résultat : 1.000000 > 45 5 + Résultat : 50.000000 > 50 + > ^C
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:37 pm #43296
ça ne marche pas vraiment, mais je commence à être à court d’idées…
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:37 pm #43297
quel est l’erreur ?
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:38 pm #43298
Ah mais tu gére le cas input == 2 ?
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:40 pm #43299
heu non
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:40 pm #43300
juste 0 et 1
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:40 pm #43301
pour moi il y a pas besoin,c ‘est celle par défaut
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:42 pm #43302
Nan il y a pas besoin
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:44 pm #43303
D’accord, mais pour mon mon problème je fais quoi ?
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:44 pm #43304
parce que ça m »étonnerait que la factorielle de 5 soit 1
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:45 pm #43305
et 50 + devrait vouloir dire acienne_expression + 50
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:45 pm #43306
le second scanf ne peut pas fonctionner
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:46 pm #43307
fait un seul scanf(« %s », &input) et après plusieurs sscanf(input, « %f %f %c », …)
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:47 pm #43308
Quoi ? 😂😅 désolé je les mets où tout ces scanf() ?
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:48 pm #43309
Attends après avoir tester ça à l’air de fonctionner le double scanf
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:49 pm #43311
Donc je ne comprend pas ce qui ne marche pas dans ton code
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:49 pm #43312
si tu veux je peux renvoyer le tout
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:50 pm #43313
Est ce que tu peux me mettre ce qui est après
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:50 pm #43314
#inlude #inlude #inlude float old_result; void addition(float, float); void substration(float, float); void multipliation(float, float); void division(float, float); void modulo(float, float); // Prototypes des différents fontions d'opérations. void power(float, float); void fatorial(float); void pgd(float, float); void ppd(float, float); int main(void) { printf("n-----CALCULATOR-----nn"); // Présentation. printf("Pour quitter : qnn"); printf("Addition : + n"); printf("Soustration : - n"); printf("Multipliation : * n"); printf("Division : / n"); printf("Reste de divison entière : # n"); printf("Puissane : ^ n"); printf("Fatorielle : ! n"); printf("PGCD : g n"); printf("PPCD : p nn"); printf("! Notation Polonaise Inverse !n"); while (true) { float number1 = 0.; float number2 = 0.; har operator; har quit_input; printf("n> "); int input = sanf("%f %f %", &number1, &number2, &operator);
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:51 pm #43315
if (input == 1) { sanf("%", &operator); number2 = number1; number1 = old_result; } else if (input == 0) { sanf("%", &quit_input); if (quit_input == 'q') { printf("nProgramme terminée, au revoir !nn"); return 0; } else { printf("nVeuillez rentrer une opération.n"); ontinue; } } swith (operator) { ase '+': addition(number1, number2); break; ase '-': substration(number1, number2); break; ase '*': multipliation(number1, number2); break; ase '/': division(number1, number2); break; ase '#': modulo(number1, number2); break; ase '^': power(number1, number2); break;
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:51 pm #43316
ase '!': fatorial(number1); break; ase 'p': pgd(number1, number2); break; ase 'g': ppd(number1, number2); break; } } } void addition(float number1, float number2) { float result = number1 + number2; old_result = result; printf("Résultat : %fn", result); } void substration(float number1, float number2) { float result = number1 - number2; old_result = result; printf("Résultat : %fn", result); } void multipliation(float number1, float number2) { float result = number1 * number2; old_result = result; printf("Résultat : %fn", result); } void division(float number1, float number2) { float result = number1 / number2; old_result = result; printf("Résultat : %fn", result); }
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:51 pm #43317
void modulo(float number1, float number2) { long long result = (long long) number1 % (long long) number2; old_result = (float) result; printf("Résultat : %fn", (float) result); } void power(float number1, float number2) { float result = pow(number1, number2); old_result = result; printf("Résultat : %fn", result); } void fatorial(float number) { float result = 1.; for (float i = number; i > 0; --i) { result *= i; } old_result = result; printf("Résultat : %fn", result); } void pgd(float number1, float number2) { return; } void ppd(float number1, float number2) { return; }
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:51 pm #43318
de A à Z 😅😅
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:57 pm #43319
tu récupére le bon operator et le factorial fonctionne, l’erreur est bizarre
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 6:59 pm #43320
je regarde là
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:00 pm #43321
argh je comprends pas
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:01 pm #43322
attend pourquoi tu fais ça
number1 = old_result;
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:01 pm #43323
Ca fonctionne beacoup mieux sans ça
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:02 pm #43324
parce que le nombre 1 devient l’ancien résulat et le nombre 2 ce que l’utilisateur vient de rentrer
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:02 pm #43325
ha oui ? Attends, je vais regarder
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:02 pm #43326
dans ce cas là il faut que tu fasse factorial(number2);
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:02 pm #43327
Tu veux le factorial du nombre que tu as rentrer pas celui d’avant
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:03 pm #43328
haa okay
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:03 pm #43329
alors, la factorielle fonctionne mais :
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:03 pm #43330
utilise le nombre d’avant
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:03 pm #43331
-----CALCULATOR----- Pour quitter : q Addition : + Soustraction : - Multiplication : * Division : / Reste de divison entière : # Puissance : ^ Factorielle : ! PGCD : g PPCD : p ! Notation Polonaise Inverse ! > 5 5 + Résultat : 10.000000 > 5 + > 5 ! Résultat : 120.000000 >
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:03 pm #43332
Pour l’utilisation du chiffre d’avant, problème
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:04 pm #43333
j’ai l’impression que old_result renvoit toujour zéro
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:04 pm #43334
mais je te laisse regarder
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:04 pm #43335
Dis moi si tu bloque encore
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:05 pm #43336
merci beaucoup 👍
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:18 pm #43337
harg je vais me tuer
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:19 pm #43338
je vois pas comment faire 🥲
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:23 pm #43339
C »est bizarre pour le + il ne récupére pas l’operateur
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:25 pm #43340
Où ?
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:27 pm #43341
je viens peut-être de comprendre
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:27 pm #43342
Ho sérieusement ?
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:28 pm #43343
le plus + il le transforme en +0
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:28 pm #43344
donc en un second nombre float
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:29 pm #43345
Où ça ? Dans quelle partie ?
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:29 pm #43346
5 + devient 5 et 0
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:30 pm #43347
Pourquoi ?
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:30 pm #43348
Parce que c’est comme ça qu’il scan les nombre
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:31 pm #43349
C’est un comportement bizarre mais scanf va considére que + est un nombre valide égale à zéro
——————–
xenohim – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:31 pm #43350
HAA mais oui j’avais oublié !
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:32 pm #43351
du coup il comprend pas
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:32 pm #43352
merci beaucoup
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:32 pm #43353
je vais essayer de mettre ça en place
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:33 pm #43354
merci ++
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:33 pm #43355
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:34 pm #43356
marqué ici
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:37 pm #43359
j’ai réussi !!!
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:37 pm #43360
(encore merci)
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:37 pm #43361
(xD)
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 27, 2024 à 7:37 pm #43362
Calculatrice en C (Résolu)
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code
-
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.
Sujets récents
-
Fond d’écran tools python
par Bot
il y a 1 semaine et 2 jours
-
Multitouch Problem
par Bot
il y a 1 semaine et 5 jours
-
Convertir un ficher .py en .exe
par Bot
il y a 1 semaine et 2 jours
-
Problème signal R C# RAZOR
par Bot
il y a 1 semaine et 4 jours
-
aide HTML CSS PHP BUTTON
par Bot
il y a 1 semaine et 4 jours
Réponses récentes
Statistiques des Forums
- Comptes enregistrés
- 2 589
- Forums
- 51
- Sujets
- 912
- Réponses
- 17 355
- Mot-clés du sujet
- 0