1
votes

Écrivez une fonction pour afficher le plus grand des trois nombres. Quelqu'un sait où est le problème avec mon programme?

(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>


6 commentaires

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 plus system (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 que num1 est un double encore alors que je l'ai déjà dit trois lignes plus tôt? Bien sûr, il doit être displayLargest (num1, num2, num3); . Et cin >> num1, num2, num3; doit être cin >> 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! !


3 Réponses :


0
votes

Remplacez cette ligne:

displayLargest(num1, num2, num3);

par:

displayLargest(double num1, double num2, double num3);


0 commentaires

0
votes

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;
}


0 commentaires

1
votes

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);


1 commentaires

Merci beaucoup pour votre instruction !!