Bonjour,
Voila, j'ai réalisé ce programme en C++ mais, je dois le rendre en langage C et j'ai bcp de mal à faire la traduction. Pourriez vous m'aider à faire cette traduction ? Je vous passe le code que j'ai fais en C++.
Merci
Code C/C++ :
#include <iostream> // iostream permet d'utiliser les fonctions "cin" et "cout"
/* Pour ne pas à avoir à mettre std:: devant chaque cout */
using namespace std;
/* Fonction calcul(), c'est ce qui sert à calculer les nombres demandés */
int calcul(int nb1, int nb2, char operat)
{
switch (operat)
{
case '+' : return (nb1 + nb2); // Si operate vaut '+', alors on ajoute les 2 nombres
case '-' : return (nb1 - nb2); // Si operate vaut '-', alors on soustrait les 2 nombres
case '*' : return (nb1 * nb2); // Si operate vaut '*', alors on multiplie les 2 nombres
case '/' : return (nb1 / nb2); // Si operate vaut '/', alors on divise les 2 nombres
// Au cas, où l'utilisateur ne mettrai ni '+', ni '-', ni '*', ni '/' ...
default :
cout << endl << endl << "Vous n'avez entre ni '+', ni '-', ni '*', ni '/', veuillez recommencer." << endl;
return 0; // ... On lui indique l'erreur et on renvoie au début
}
}
/* Fonction initial(), qui initialise le tout et renvoie un caractère 'o' ou 'n'
en fonction de si l'utilisateur veut recommencer ou pas */
char initial(void)
{
int nb_1, nb_2, resultat;
char operateur, boleen; // boleen va contenir le 'o' ou le 'n' qui indiquera si l'utilisateur veut recommencer ou pas
// On demande à l'utilisateur deux nombres et un opérateur
cout << endl << "Entrez le premier nombre : ";
cin >> nb_1;
cout << endl << "Entrez le second nombre : ";
cin >> nb_2;
cout << endl << "Maintenant, entrez l'operateur ('+', '-', '*' ou '/') : ";
cin >> operateur;
// On fait le calcul grâce à le fonction calcul() définie plus haut
resultat = calcul(nb_1, nb_2, operateur);
// On vérifie que l'utilisateur a bien rentré un bon opérateur grâce au "return 0; de la fonction calcul()
if (resultat != 0)
{
cout << endl << endl << "Le resultat est " << nb_1 << " " << operateur << " " << nb_2 << " = " << resultat << endl;
cout << endl << "Voulez-vous recommencer (o/n)? ";
cin >> boleen;
return boleen; // On retourne la valeur entrée par l'utilisateur ('o' ou 'n', normalement
}
// Si l'utilisateur n'as pas rentré d'opérateur ou un mauvais opérateur ...
else return 'o'; // ... on fait comme si l'utilisateur voulait refaire une opération, donc 'o' pour recommencer sans donner le résultat
}
/* La fonction principale "main" qui démarre et qui
contient la boucle qui fait tourner notre programme */
int main(void)
{
char restart;
// Messages de bienvenues :
printf("Bienvenue, voici la calculatrice fabriquee par Thierry Balat\n\n");
printf("Bien sur, elle n'est pas super puissante et sait seulement calculer avec des \nnombres entiers. Ah oui, n'entrez PAS de lettre au lieu d'un chiffre\n");
// Boucle du programme en "do ... while" car la boucle doit être executée au moins une fois
do
{
restart = initial(); // On initialise ... (restart va être égal à boleen)
} while (restart == 'o'); // ... et on continue à retarter tant que l'utilisteur a répondu 'o'
return 0; // L'utilisateur a rentré 'n' donc il veut quitter le programme et on fait un return 0; pour quitter le programme
}
J-Ph