C++, suche Tutorial

#include <iostream>
#include <string>
int zahl1,zahl2,zahl3,x;
int main()
{
std::string zahl1;
std::cin >> zahl1;
std::string zahl2;
std::cin >> zahl2;
std::string zahl3;
std::cin >> zahl3;


x = (zahl1 + 10)* zahl2 / zahl3
std::cout << "Ergebnis " << x << std::endl;

}

Was ist daran falsch ?
Fällt es dir jetzt auf?
 
Dann müsste ich doch eigentlich die Zeilen mit string einfach weglassen könnnen, aber dann meldet er mir einen Fehler in der Ausgabezeile.
Sorry habe gerade erst mit c++ angefangen und zu schnell durchgeheizt .

LG
silent12
 
1. Du initialisierts deine Variablen zum Teil zweimal.
Außerdem würde ich die Zahl- sowie die Ergebnis Variable auf double setzten. Da es beim dividieren eventuell zu nicht ganzen Zahlen kommen kann. Zum Beiapiel wenn die Zahlen 7 und 2 dividiert werden sollen.
 
#include <iostream>
#include <string>
int zahl1,zahl2,zahl3;
double x;
int main()
{
cin >> zahl1;
cin >> zahl2;
cin >> zahl3;


x = (zahl1 + 10)* zahl2 / zahl3
cout << "Ergebnis " << x << endl;

}

warum bringt der mir dann immer noch fehler ? sry hab noch ka ^^
 
std darfst du nur weglassen, wenn du den namespace importiert hast:
Code:
using namespace std; // z. B. oben in der .cpp Datei einfügen; das gehört nicht in Header-Dateien!!!
Evtl. fehlt dir noch ein return value.
Code:
int main()
{
    // ...
    return 0; // Du hast ja eine Funktion mit int als Rückgabetyp, also solltest du auch was zurückgeben!
}

Edit: Welche Fehlermeldungen spcukt dein Compiler denn eigentlich aus?
 
#include <iostream>

int main()
{
int i;

std::cout << "Geben Sie eine Zahl ein: " << std::flush;
std::cin >> i;
if (i < 100)
{
std::cout << "Sie haben eine Zahl kleiner als 100 eingegeben." << std::endl;
}
else if (i < 200)
{
std::cout << "Sie haben eine Zahl kleiner als 200 eingegeben." << std::endl;
}
else
{
std::cout << "Sie haben eine Zahl groesser gleich 200 eingegeben." << std::endl;
}

else if (i < 500)
{
std::cout << "Sie haben eine Zahl kleiner als 500 eingegeben." << std::endl;
}
else
{ std::cout << "Sie haben eine Zahl groesser/gleich 500 eingegeben." << std::endl;
}




system ("Pause");
}



Ich finde den Fehler bei dem 2. else if nicht.
Findet ihn jemand?

LG
silent12
 
#include <iostream>

int main()
{
int i;

std::cout << "Geben Sie eine Zahl ein: " << std::flush;
std::cin >> i;
if (i < 100)
{
std::cout << "Sie haben eine Zahl kleiner als 100 eingegeben." << std::endl;
}
else if (i < 200)
{
std::cout << "Sie haben eine Zahl kleiner als 200 eingegeben." << std::endl;
}
else
{
std::cout << "Sie haben eine Zahl groesser gleich 200 eingegeben." << std::endl;
}

else if (i < 500)
{
std::cout << "Sie haben eine Zahl kleiner als 500 eingegeben." << std::endl;
}
else
{ std::cout << "Sie haben eine Zahl groesser/gleich 500 eingegeben." << std::endl;
}




system ("Pause");
}



Ich finde den Fehler bei dem 2. else if nicht.
Findet ihn jemand?

LG
silent12

Das 2te Else if soll doch sicherlich ein if sein oder?
Denn ein else if ohne vorheriges if wird nicht funktionieren ;)
 
Noch 1 Frage :-D wo ist der unterschied zwischen std::cout <<"...." << std::endl; und std::cout <<"...." << std:flush; ??
LG
silent12
 
std::endl gibt ein "\n" aus, also eine neue Zeile und flusht dann. std::flush flusht nur.

Zum Begriff flushen:
std::cout hat einen internen Buffer, in die die Daten zuerst geschrieben werden. Mit std::flush weißt man std::cout explizit an, die Daten auf die Konsole zu schrieben (also den Bufffer zu flushen).
 
Ah ok danke. Und nun also eine andere Aufgabe war:

Entwickeln Sie eine C++-Anwendung, die den Anwender zur Eingabe einer vierstelligen Zahl auffordert. Das Programm soll daraufhin die Quersumme der Zahlerrechnen und das Ergebnis dann auf den Bildschirm ausgeben.

Die habe ich so gelöst:


#include <iostream>

int main()
{

int ziffer1, ziffer2, ziffer3, ziffer4 ,eingabe, ausgabe;

std::cout <<"Geben sie eine 4stellige Zahl ein" << std::endl;
std::cin >> eingabe;

ziffer1 = eingabe/1000;

ziffer2 = (eingabe - ziffer1*1000)/100;

ziffer3 = (eingabe - ziffer1*1000 - ziffer2*100)/10;

ziffer4 = (eingabe - ziffer1*1000 - ziffer2*100 - ziffer3*10);

ausgabe = ziffer1 + ziffer2 + ziffer3 +ziffer4;

std::cout <<"Die Quersumme ihrer eingegeben Zahl lautet" << ausgabe << std::endl;

system ("Pause");
}


Nun soll ich die Aufgabe mithilfe von Schleifen lösen frage mich aber wie ich da Schleifen einbauen soll. Kann jemand helfen?

LG
silent12
 
Thx für den Tipp,.... hat noch jemand eine Idee zur Frage davor ?



oder hier den Fehler?:


#include <iostream>

using namespace std;

int a,b,c,d;

int main ()

{ cout <<"Geben sie 1 Zahl ein" << endl;
cin >> a;

cout <<"Geben sie 1 Zahl ein" << endl;
cin >> b;

cout <<"Geben sie 1 Zahl ein" << endl;
cin >> c;

cout <<"Geben sie 1 Zahl ein" << endl;
cin >> d;

if( a<b, a<c ,a<d)
{ cout <<"kleinste Zahl:" << a << endl;
}

if(b<a, b<c, b<d)
{ cout <<"kleinste Zahl:" << b << endl;
}


if(c<a, c<b, c<d)
{ cout <<"kleinste Zahl:" << c << endl;
}


if(d<a, d<b, d<c)
{ cout <<"kleinste Zahl:" << d << endl;
}

system("Pause");
}

LG
silent12
 
Zuletzt bearbeitet:
Zurück