(Le plus grand des trois nombres)
Écrivez une fonction avec l'en-tête suivant pour afficher le plus grand des trois nombres:
main.cpp: In function âint main()â: main.cpp:28:21: error: expected primary-expression before âdoubleâ displayLargest (double num1, double num2, double num3); ^~~~~~ main.cpp:28:34: error: expected primary-expression before âdoubleâ displayLargest (double num1, double num2, double num3); ^~~~~~ main.cpp:28:47: error: expected primary-expression before âdoubleâ displayLargest (double num1, double num2, double num3); ^~~~~~
Écrivez un programme de test qui invite l'utilisateur à entrer trois nombres et appelle la fonction pour afficher le plus grand d'entre eux.
Voici mon programme:
#include<iostream> #include<iomanip> using namespace std; void displayLargest (double num1, double num2, double num3) { if (num1 > num2 && num1 > num3){ cout << num1; } else if (num2 > num1 && num2 > num3){ cout << num2; } if (num3 > num1 && num3 > num2){ cout << num3; } } int main() { double num1, num2, num3; cout << "Please enter 3 numbers:"; cin >> num1, num2, num3; displayLargest (double num1, double num2, double num3); system("pause"); return 0; }
Mais, le système affiche l'erreur suivante:
void displayLargest(double num1, double num2, double num3)
p>
3 Réponses :
Remplacez cette ligne:
displayLargest(num1, num2, num3);
par:
displayLargest(double num1, double num2, double num3);
Premièrement, pour lire trois nombres sur une ligne, étendez simplement le tube cin
aux trois variables.
Le problème que vous décrivez est une erreur de compilation car vous ne pouvez pas re-déclarer le num1 , num2
et num3
. Consultez le code suivant qui corrige ces problèmes.
./main Please enter 3 numbers:1 2 3 3
Ceci est un exemple d'entrée / sortie
#include<iostream> #include<iomanip> using namespace std; void displayLargest(double num1, double num2, double num3) { if (num1 > num2 && num1 > num3) { cout << num1; } else if (num2 > num1 && num2 > num3) { cout << num2; } if (num3 > num1 && num3 > num2) { cout << num3; } } int main() { double num1, num2, num3; cout << "Please enter 3 numbers:"; cin >> num1 >> num2 >> num3; displayLargest(num1, num2, num3); return 0; }
Cette
#include <iostream> #include <algorithm> void displayLargest( double num1, double num2, double num3 ) { std::cout << std::max( { num1, num2, num3 } ) << '\n'; } int main() { displayLargest( 1.2, 1.3, 1.1 ); return 0; }
est une construction syntaxiquement incorrecte.
L'appel de fonction ressemblera à
void displayLargest( double num1, double num2, double num3 ) { double largest = num1; if ( largest < num2 ) { largest = num2; } if ( largest < num3 ) { largest = num3; } std::cout << largest << '\n'; }
Si vous utilisez le système
de la fonction C standard, vous devez alors inclure l'en-tête
.
La fonction elle-même est également incorrecte. Cela ne tient pas compte du fait que l'utilisateur peut saisir trois ou deux nombres égaux.
La fonction peut être définie de différentes manières.
Voici deux exemples de définition de fonction.
Soit
void displayLargest( double num1, double num2, double num3 ) { if ( !( num1 < num2 ) && !( num1 < num3 ) ) { std::cout << num1 << '\n'; } else if ( !( num2 < num3 ) ) { std::cout << num2 << '\n'; } else { std::cout << num3 << '\n'; } }
ou
displayLargest(num1, num2, num3);
Si vous êtes autorisé à utiliser des algorithmes standard, la fonction peut être implémenté en utilisant l'algorithme std::max
.
Voici un programme démonstratif.
displayLargest (double num1, double num2, double num3);
Merci beaucoup pour votre instruction !!
veuillez consulter le chapitre sur l'appel de fonctions dans votre livre c ++.
astuce: lorsque vous appelez par exemple
system
, vous n'écrivez pas non plussystem (char [] "pause");
Que doit-il se passer lorsque deux nombres sont égaux?
displayLargest (double num1, double num2, double num3);
Je suppose que la question que vous devriez vous poser est, pourquoi dois-je dire au compilateur quenum1
est un double encore alors que je l'ai déjà dit trois lignes plus tôt? Bien sûr, il doit êtredisplayLargest (num1, num2, num3);
. Etcin >> num1, num2, num3;
doit êtrecin >> num1 >> num2 >> num3;
L'erreur vous dit quels mots sont faux et où ils se trouvent exactement.
ah, je savais où je me trompais. Merci! !