C++ Probleme bei C++ Programm erstellung

Vanessa92

Newbie
Registriert
März 2012
Beiträge
4
Ich habe erst mit C++ angefangen und habe vor sehr einfache programme zu schreiben und habe dies auch getan jedoch habe ich für mich undefinierbare Fehler in den Programmen. Ich wäre euch dankbar wenn ihr mir diese zeigen könntet.

Progr. 1: Ziel- das Hochrechnen von Zahlen


#include <iostream>
using namespace std;

int main (int argc, const char * argv[])
{


double zahl;
double hochzahl;
double ergebnis = 1.0;

cout << "Zahl eingeben: ";
cin >> zahl;

cout << "\nHochzahl eingeben: ";
cin >> hochzahl;

while ( hochzahl > 0 ) {

ergebnis = ergebnis * zahl;

hochzahl--;
}

cout << "\nErgebnis ist: " << ergebnis;

return 0;
}


Progr. 2 Ziel: Berechnen des BMI und das wiedergeben der Anweisungen bei bestimmten Ergebnissen.

#include <iostream>
using namespace std;

int main (int argc, const char * argv[])
{

// bmi = gewicht/groesse^2

float groesse;
float gewicht;
float bmi;

cout << "Wie groß bist du? \n";
cin >> groesse;

cout << "Wie schwer bist du? \n";
cin >> gewicht;

bmi = gewicht/(groesse*groesse);

cout << bmi;

return 0;
}

{
cout << "nimm ab!";
} else if(bmi < 25)
{
cout << "iss mehrere Pudding!";
} else if(bmi > 19 && bmi < 30)
{
cout << "Mach weiter so!";
} else if(bmi == 24)
}


Ich bedanke mich im Vorraus!
 
programm1 funktioniert so.
programm2 ist syntaktisch nicht korrekt.
die couts stehen im nirgendwo ;)
 
erstmal: was für fehler liegen vor? hier kann keiner Hellsehen...
Ich kenne die Syntax von c++ nicht richtig (ich programmiere vorwiegend in c#) aber ich versuche es mal:
beim ersten programm fällt mir erstmal nichts auf, außer dass man vielleicht etwas schönere Begriffe verwenden könnte (basis, exponent).
Beim zweiten programm steht noch etwas hinter dem return, dieser programmteil wird nie erreicht, und dort fehlt auch die erste Bedingung. Außerdem tritt der erste Fall (bmi < 25) auch beim zweiten fall zu (bmi zwischen 19 und 30). Ich weiß nicht wie das in C++ gehandhabt wird, aber vielleicht könnten da auch noch explizite casts fehlen (in den Bedingungen wird ja float mit int(?) verglichen)

MfG
Damon

edit:
Code:
cin >> gewicht;

bmi = gewicht/(groesse*groesse);

cout << bmi;

if(bmi > 30)
{
cout << "nimm ab!";
}
else if(bmi == 24)
{
cout << "iss mehrere Pudding!";
}
else if(bmi > 19 && bmi < 30)
{
//tritt auch ein, wenn bmi == 24 zutrifft
cout << "Mach weiter so!";
}
 
Zuletzt bearbeitet:
versuchs mal so:
Code:
#include <iostream>
using namespace std;



int main (int argc, const char * argv[])
{

	// bmi = gewicht/groesse^2

	float groesse;
	float gewicht;
	float bmi;

	cout << "Wie groß bist du? \n";
	cin >> groesse;

	cout << "Wie schwer bist du? \n";
	cin >> gewicht;

	bmi = gewicht*10000/(groesse*groesse);

	cout << bmi;

	if(bmi>=30)
	{
		cout << "nimm ab!";
	} else if(bmi < 19)
	{
		cout << "iss mehrere Pudding!";
	} else if(bmi >= 19 && bmi < 30)
	{
		cout << "Mach weiter so!";
	}

	return 0;
}

das letzte else if mit bmi ==24 macht keinen sinn, das ist unreachable code.

aber tu dir selbst n gefallen und benutz eine ide wie eclipse (unter linux) oder visual studio 2010 c++ express (unter windows).
 
Vielen Dank euch allen , es hat geklappt
und den Rat mit visual studio 2010 bzw. eclipse werde ich befolgen (:

Danke nochmals
 
Warscheinlich schon gesagt, aber du hast in beispiel 2 folgendes:
Code:
int main(...)
{
bla;

return 0;
}

// more code here
Wenn du in einer funktion "return" hast, ist das die letzte Zeile in der funktion. Alles ausserhalb einer funktion darf nur aus makros und deklaration von variablen und funktionen bestehen. Das ist kurz und schlecht ausgedrueckt. Hast du angefangen ein Buch parallel zum Coden zu lesen? Hilft extrem!
 
Zurück
Oben