Permalänk
Avstängd

Hjälp c++ kod

Hade behövt få hjälp av någon som kan förstå vad jag har gjort fel.
Kan inte få den att räkna korrekt.

#include <iostream>
using namespace std;
main()
{
int for_tank;
int eft_tank;
int tank;
cout << " Mätarställning innan tankning (Km) ? ";
cin >> for_tank;
cout << " Mätarställning efter tankning (Km) ? ";
cin >> eft_tank;
cout << " Antal liter tankade ? ";
cin >> tank;
cout << "Bensinförbrukning (L/Mil): "
<< tank /(eft_tank - for_tank) <<endl;
cout << "Tot Bensinkostad Kr/Mil (Bensin 10kr/L): "
<< tank /(eft_tank - for_tank) * 10 <<endl;
}

Visa signatur

[size="1"]Signatur raderad, max tre rader i size 1. Se reglerna. - Vicotnik[/size]

Permalänk

Kan börja med att använda [.CODE][./CODE] taggarna för din kod, utan punkter givetvis.

Visa signatur
Permalänk
Medlem

du verkar köra med heltalsdivision och då blir t.ex. 5/3=1, använd double som datatyp istället

Permalänk
Medlem

Som ollel sa:

#include <iostream> using namespace std; main() { double for_tank; double eft_tank; double tank; cout << " Mätarställning innan tankning (Km) ? "; cin >> for_tank; cout << " Mätarställning efter tankning (Km) ? "; cin >> eft_tank; cout << " Antal liter tankade ? "; cin >> tank; cout << "Bensinförbrukning (L/Mil): " << tank /(eft_tank - for_tank) <<endl; cout << "Tot Bensinkostad Kr/Mil (Bensin 10kr/L): " << tank /(eft_tank - for_tank) * 10 <<endl; }

Då skrivs även decimalerna med

Visa signatur

..:: RiJo ::..
Computer: Lenovo X300
Platform: Gentoo

Permalänk
Avstängd

Tjenare och tack!

Fick rätt på det nu men kan inte få det till TVÅ decimaler.

Avänder jag mig av en if funktion eller hur gör jag för att den skall kontrollera att man anger
en lägre mätarställning från början än den andra..

Visa signatur

[size="1"]Signatur raderad, max tre rader i size 1. Se reglerna. - Vicotnik[/size]

Permalänk
Medlem
Citat:

Fick rätt på det nu men kan inte få det till TVÅ decimaler.

Har för mej att man använder en metod som heter "setprecision" i cout.

Citat:

Avänder jag mig av en if funktion eller hur gör jag för att den skall kontrollera att man anger
en lägre mätarställning från början än den andra..

Jepp.

Permalänk
Avstängd

Nu blev allt knassigt..
Jag är ingen Bill Gates jag inte..

#include <iostream>
using namespace std;
main()
{
double for_tank;
double eft_tank;
double tank;
cout << " Matarstallning innan tankning (Km) ? ";
cin >> for_tank;
cout << " Matarstallning efter tankning (Km) ? ";
cin >> eft_tank;
if (for_tank > eft_tak)
cout << " Matarstallning fel angivet " <<endl;
cout << " Antal liter tankade ? ";
cin >> tank;
cout << " Bensinforbrukning (L/Mil): "
<< tank /((eft_tank / 10) - (for_tank / 10)) setprecision=2 <<endl;
cout << " Tot Bensinkostad Kr/Mil (Bensin 10kr/L): "
<< tank /((eft_tank / 10) - (for_tank / 10)) * 10 setprecision=2 <<endl;
}

Visa signatur

[size="1"]Signatur raderad, max tre rader i size 1. Se reglerna. - Vicotnik[/size]

Permalänk

#include <iostream> #include<iomanip> using namespace std; main() { double for_tank; double eft_tank; double tank; cout << " Mätarställning innan tankning (Km) ? "; cin >> for_tank; cout << " Mätarställning efter tankning (Km) ? "; cin >> eft_tank; cout << " Antal liter tankade ? "; cin >> tank; cout << "Bensinförbrukning (L/Mil): " << setiosflags(ios::fixed) << setprecision(2) << tank /(eft_tank - for_tank) <<endl; cout << "Tot Bensinkostad Kr/Mil (Bensin 10kr/L): " << tank /(eft_tank - for_tank) * 10 <<endl; }