2016-09-26 1 views
-2

Mir wurde ein Projekt zugewiesen, bei dem ich Probleme habe, das Problem herauszufinden. Das Projekt lautet: "Die main() -Funktion, die nach Eingabe vom Benutzer fragen soll, um Folgendes zu berechnen: SumProductDifference und Power. Es sollte eine gut gestaltete Benutzeroberfläche geben. Eine Void-Funktion namens SumProductDifference (int, int, int & , int &, int &) dieser Computer die Summe, das Produkt und die Differenz von zwei Eingabeargumenten, und übergibt die Summe, Produkt und Differenz by-reference.Eine Wert zurückgegebene Funktion namens Power (int a, int b), die eine erhöhte berechnet zu der b power.design und implementieren Sie Ihre eigene Power-Funktion mit einer iterativen Kontrollstruktur oder sogar Rekursion.Geben Sie nicht einfach einen Wrapper um die C++ - Funktion namens pow(). Es sollte eine Benutzerschleife und ein Menü, so dass der Benutzer Sie können entweder "SumProductDifference", "Power" oder "Quit" auswählen. Das Menü sollte außerdem Optionen enthalten, die es dem Benutzer ermöglichen, die Werte der beiden Ganzzahlen für die Eingabe festzulegen und zu ändern.C4700 Fehler und ein Problem beim Aufruf von Funktionen

#include "stdafx.h" 
#include <iostream> 

    using namespace std; 

    void SumProductDifference(int, int, int&, int&, int&); 
    int Power(int a, int b); 
    bool GoAgain(); 

    int main() { 
     int a, b; 
     int choice; 
     int sum, product, difference; 
     do 
     { 
      cout << "================================================" << endl; 
      cout << "=====Welcome to AB Calculator 2016 Edition======" << endl; 
      cout << "==== 1 - SumProductDifference Function ======" << endl; 
      cout << "==== 2 - Power of Function    ======" << endl; 
      cout << "==== 3 - Quit        ======" << endl; 
      cout << "= Make A Selection:      ======" << endl; 
      cout << "================================================" << endl; 
      cin >> choice; 

      switch (choice) { 
      case '1': SumProductDifference(a, b, sum, product, difference); 
       break; 
      case '2': Power(a, b); 
       break; 
      case '3': 
       break; 
      default: 
       break; 
      } 

      return 0; 

     } while (choice != 3); 
     return 0; 

    } 

    bool GoAgain() { 
     char answer; 

     cout << "would you like to go again (y/n) ==> "; 
     cin >> answer; 

     return answer == 'y'; 
    } 

    void SumProductDifference(int a, int b, int& s, int& p, int& d) { 


     cout << "Enter two integers: "; 
     cin >> a, b; 

     s = a + b; 
     p = a * b; 
     d = a - b; 

     cout << "The sum of " << a << " + " << b << " = " << s << endl; 
     cout << "The product of " << a << " * " << b << " = " << p << endl; 
     cout << "The difference of " << a << " - " << b << " = " << d << endl; 


    } 

    int Power(int a, int b) { 
     int total = 1; 
     int i; 
     cout << "Enter a number: "; 
     cin >> a; 

     cout << "Raise this integer to the power of: "; 
     cin >> b; 

     for (i = 1; i < b; i++) { 
      total = total *b; 
     } 
     return total; 
    } 
+2

Können Sie bitte das Problem beschreiben, das Sie mit diesem Code haben? Wenn Sie Compilerfehler haben, geben Sie bitte die genaue Fehlermeldung an. – NathanOliver

+2

'cin >> a, b;' Ich bin mir zu 99% sicher, dass das nicht das tut, was Sie denken, dass es tut. ([C4700 verwendet eine Variable, ohne sie vorher zu initialisieren] (https://msdn.microsoft.com/en-us/library/axhfhh6x.aspx)) – Borgleader

+0

Willkommen bei Stack Overflow! Um Menschen bei der Beantwortung Ihrer Frage zu helfen, müssen Sie genauer auf den Fehler eingehen. Bitte [bearbeiten] Sie Ihren Beitrag, um Ihren Code auf [mcve] zu reduzieren, der das Problem demonstriert, und die genauen Fehler zu integrieren, die Sie beim Kompilieren dieses Beispiels erhalten (vorzugsweise mit copy + paste, um Übertragungsfehler zu vermeiden). –

Antwort

-1

Deklarieren int choice; aber im Switch - case '1'? Sie lesen int aber vergleichen es mit einem Char-Literal. Entweder ändern int choice; ->char choice; oder case '1' ->case 1:

Lesen Sie mehr über Grundtypen in C/C++. Char ist nur eine 8-Bit-Ganzzahl, die wir bequemerweise zur Darstellung eines Zeichens verwenden (mit der Zustimmung des Compilers).

Auch lesen Sie nicht richtig mehrere Werte von Std :: cin: cin >> a, b; und einige andere Fehler.

Lernen Sie richtig zu forschen. Konsultieren Sie cppreference.com, bevor Sie SO fragen.

Verwandte Themen