Frage von Antimonit, 42

Fehler beim Programmieren(undeclared identifier)?

Bei der letzten Zeile kommt die Fehlermeldung "use of undeclared identifier yardLenght/yardWidth", was ist da falsch?

#include <iostream>

using namespace std;

int Area(int length, int width); // Funktionsprototyp

int main()

{

int lengthOfYard;

int widthOfYard;

int areaOfYard;

cout << "\nWie breit ist Ihr Garten? ";

cin >> widthOfYard;

cout << "\nWie lang ist Ihr Garten? ";

cin >> lengthOfYard;

areaOfYard= Area(lengthOfYard,widthOfYard);

cout << "\nDie Flaeche Ihres Gartens betraegt ";

cout << areaOfYard;

cout << " Quadratmeter\n\n";

return 0;

}

int Area(int l, int w)

{

return yardLength * yardWidth;

}  

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von gerlochi, 14

Die Variablen yardLength & yardWidth wurden nicht von dir deklariert. Wenn du sie nicht deklarierst, kann der Compiler damit auch nichts Anfangen.

Du musst dir das so vorstellen:

Du nimmst dir ein Glas (Variable deklariert) und versuchst daraus zu trinken (mit der Variable arbeiten). Du musst aber erst Wasser in das Glas füllen um es austrinken zu können(Variable einen Wert geben)! Wie du das machst ist egal, hauptsache das Glas ist voll :D.

MfG gerlochi

Kommentar von gerlochi ,

return yardLength*yardWidth; geht nicht da du in den Funktionsparametern nur l und w deklariert hast! Entweder gibst du yardLength und yardWidth den Wert l und w oder du schreibst statt l und w, yardLength und yard Width.

Kommentar von moin354 ,

topkek

Antwort
von Google123451234, 7

Die Variable Yardlenght/width existiert nicht in der Funktion

Antwort
von J0eSpivy, 30

yardLength und yardWidth ist nicht definiert

Kommentar von TheQ86 ,

korrekt. Die Funktionsparameter lauten l und w laut Signatur.

@Fragesteller: Quellcode hier mal formatieren wäre nett. Gibts ne Funktion für. So sieht das einfach nur unübersichtlich aus.

Antwort
von Orsovai, 16

Schreib Deine Funktioj Area um. Entweder

return l*w;

Oder (bessere Lesbarkeit) Du definierst

int Area(int yardLength, int yardWidth);

Ich würde übrigens noch unzulässige Längen (<0) abfangen ;)

Kommentar von Orsovai ,

Sehe grade, dass Du direkt über main die Parameter der Area Funktion nochmal anders genannt hast. Bleib konsistent, sonst wirst Du irgendwann derart durcheinander kommen.

Antwort
von TheAceOfSpades, 13

Und areaofyard brauchst du eigentlich auch nicht. Area gibt ja schon einen int zurück.

Keine passende Antwort gefunden?

Fragen Sie die Community