C++ Problem
Moderator: ACZ-Mod-Team
-
Dexter
C++ Problem
Hi,
habe mích mal wieder an c++ gewagt.
Ergebnis:
//Benzinrechner
#include<iostream>
#include<iomanip>
using namespace std;
int main ()
{
cout.precision (2);
cout.setf(ios::fixed);
float zahl_1,zahl_2,zahl_3,ergeb;
cout<<"\n***Verbrauchsrechner***\n\n";
cout<<"Bitte die gefahrenden Kilometer eingeben: ";
cin>>zahl_1;
cout<<"Bitte die getankten Liter eingeben: ";
cin>>zahl_2;
cout<<"Bitte den sonst ueblichen Durchschnittsverbrauch eingeben: ";
cin>>zahl_3;
{
ergeb=zahl_2*100/zahl_1;
cout<<"\n\n"<<"Der Schnitt ist "<<ergeb<<" Liter je 100KM"<<"\n\n";
switch (ergeb<=zahl_3+0.5,ergeb>=zahl_3-1)
{
case 1:cout<<"\nVerbrauch OK!\n\n";
}
switch (ergeb<zahl_3-2)
{
case 1:cout<<"\nMachst du einen auf Fred Feuerstein?\n\n";
}
switch (ergeb>=zahl_3+1)
{
case 1:cout<<"\nDer Verbrauch ist zu Hoch.\n\n";
}
switch (ergeb>=zahl_3+2)
{
case 1:cout<<"\nDu solltest bald eine Werkstatt besuchen.\n\n";
}
}
system("Pause");
return 0;
}
mit der fettgeschriebenen Zeile habe ich aber so ein kleines Problem, egal was und wie ich es dort schreibe, der erste Teil wird ignoriert. Also selbst bei einem Verbrauch von 15 bei 7 sonst üblichen kommter Spruch "Verbrauch OK."
habe mích mal wieder an c++ gewagt.
Ergebnis:
//Benzinrechner
#include<iostream>
#include<iomanip>
using namespace std;
int main ()
{
cout.precision (2);
cout.setf(ios::fixed);
float zahl_1,zahl_2,zahl_3,ergeb;
cout<<"\n***Verbrauchsrechner***\n\n";
cout<<"Bitte die gefahrenden Kilometer eingeben: ";
cin>>zahl_1;
cout<<"Bitte die getankten Liter eingeben: ";
cin>>zahl_2;
cout<<"Bitte den sonst ueblichen Durchschnittsverbrauch eingeben: ";
cin>>zahl_3;
{
ergeb=zahl_2*100/zahl_1;
cout<<"\n\n"<<"Der Schnitt ist "<<ergeb<<" Liter je 100KM"<<"\n\n";
switch (ergeb<=zahl_3+0.5,ergeb>=zahl_3-1)
{
case 1:cout<<"\nVerbrauch OK!\n\n";
}
switch (ergeb<zahl_3-2)
{
case 1:cout<<"\nMachst du einen auf Fred Feuerstein?\n\n";
}
switch (ergeb>=zahl_3+1)
{
case 1:cout<<"\nDer Verbrauch ist zu Hoch.\n\n";
}
switch (ergeb>=zahl_3+2)
{
case 1:cout<<"\nDu solltest bald eine Werkstatt besuchen.\n\n";
}
}
system("Pause");
return 0;
}
mit der fettgeschriebenen Zeile habe ich aber so ein kleines Problem, egal was und wie ich es dort schreibe, der erste Teil wird ignoriert. Also selbst bei einem Verbrauch von 15 bei 7 sonst üblichen kommter Spruch "Verbrauch OK."
Yeah Baby, ich hab mich das letzte Mal vor einem Jahr mit C++ beschäftigt und bin stolz drauf, dass ich Deinen Quellcode noch raffe 
Was benutzt Du für nen Compiler? Borland?
Eine Sache verstehe ich allerdings nicht:
switch (ergeb<=zahl_3+0.5,ergeb>=zahl_3-1)
{
case 1:cout<<"\nVerbrauch OK!\n\n";
}
switch (ergeb<zahl_3-2)
{
case 1:cout<<"\nMachst du einen auf Fred Feuerstein?\n\n";
}
switch (ergeb>=zahl_3+1)
{
case 1:cout<<"\nDer Verbrauch ist zu Hoch.\n\n";
}
switch (ergeb>=zahl_3+2)
{
case 1:cout<<"\nDu solltest bald eine Werkstatt besuchen.\n\n";
}
}
system("Pause");
return 0;
}
Was bewirkt diese Rechnung (also das fettgedruckte)?
Was benutzt Du für nen Compiler? Borland?
Eine Sache verstehe ich allerdings nicht:
switch (ergeb<=zahl_3+0.5,ergeb>=zahl_3-1)
{
case 1:cout<<"\nVerbrauch OK!\n\n";
}
switch (ergeb<zahl_3-2)
{
case 1:cout<<"\nMachst du einen auf Fred Feuerstein?\n\n";
}
switch (ergeb>=zahl_3+1)
{
case 1:cout<<"\nDer Verbrauch ist zu Hoch.\n\n";
}
switch (ergeb>=zahl_3+2)
{
case 1:cout<<"\nDu solltest bald eine Werkstatt besuchen.\n\n";
}
}
system("Pause");
return 0;
}
Was bewirkt diese Rechnung (also das fettgedruckte)?
Der Link geht nicht Du Spacken!Der ultimative Test: Wie dumm bist Du wirklich? - KLICK HIER
-
Dexter
- Anstoss Player
- 1x ACZ, immer ACZ

- Beiträge: 10906
- Registriert: 03.08.2003, 01:52
- Wohnort: Wiesbaden
- Anstoss Player
- 1x ACZ, immer ACZ

- Beiträge: 10906
- Registriert: 03.08.2003, 01:52
- Wohnort: Wiesbaden
naja, unser Programmiermeister hat immer gemeint: Lieber mehr Klammern als zu wenig. Und tatsächlich sind manchmal Klammern an Stellen notwendig gewesen, wo man sich das nie gedacht hätte (weils eigentlich nach der Logik überflüssig wär)
Weggehen bedeutet nicht unbedingt,
Irgendwo anders dann anzukommen.
-ClickClickDecker
Irgendwo anders dann anzukommen.
-ClickClickDecker
-
Dexter
-
Dexter
- Anstoss Player
- 1x ACZ, immer ACZ

- Beiträge: 10906
- Registriert: 03.08.2003, 01:52
- Wohnort: Wiesbaden
ich vom c++ auch nur wenig Ahnung, aber nach ANSI-C und Java würde der Code in der Tat komisch sein und wohl nicht gehen.
Ich glaube, du solltest deine cases alle in einen switch reintun. oder aber mit if () {} else if () {} ... arbeiten
Ich glaube, du solltest deine cases alle in einen switch reintun. oder aber mit if () {} else if () {} ... arbeiten
Weggehen bedeutet nicht unbedingt,
Irgendwo anders dann anzukommen.
-ClickClickDecker
Irgendwo anders dann anzukommen.
-ClickClickDecker
-
Dexter
-
Dexter
-
Dexter
meinte meinen Code von oben
in den Büchern und Tutorials in die ich reingeschaut habe, gab es solche if Verzweigungen gar nicht
dein Code funktioniert zwar soweit, nur sollte ja nicht nur ein Satz ausgespuckt werden, sondern bei ergeb>zahl_3+2 beide zutreffenden (also Verbrauch zu Hoch und der Hinweis auf den Werstattbesuch)
in den Büchern und Tutorials in die ich reingeschaut habe, gab es solche if Verzweigungen gar nicht
dein Code funktioniert zwar soweit, nur sollte ja nicht nur ein Satz ausgespuckt werden, sondern bei ergeb>zahl_3+2 beide zutreffenden (also Verbrauch zu Hoch und der Hinweis auf den Werstattbesuch)