Hej, jag har en uppgift där jag ska räkna ut ett pris på ett samtal.
Samtalet kan inte gå över dygnstider. Samtalet kostar 3kr per min, om samtalet är över 30min långt läggs det på en rabatt på 15% av det totala priset och om en del eller hela samtalet ligger före 08:00 eller efter 18:30 ges 65% rabatt på min i det intervallet (alltså inte rabatt på hela samtalet).
Jag har då en funktion som räknar ut allt detta problemet är att efter jag la till 65% rabatten har jag fått helt fel samtalspris, skulle vara väldigt tacksam om någon läste igenom min kod och skriver vad som är fel. Skickar med både den felaktiga koden med 65% rabatten och den funktionella utan.
variabler: i ett samtal från 13:20 - 14:15 är h=13, h2=14, m=20 och m2=15
Kod:
Kod utan 65% rabatt:
Samtalet kan inte gå över dygnstider. Samtalet kostar 3kr per min, om samtalet är över 30min långt läggs det på en rabatt på 15% av det totala priset och om en del eller hela samtalet ligger före 08:00 eller efter 18:30 ges 65% rabatt på min i det intervallet (alltså inte rabatt på hela samtalet).
Jag har då en funktion som räknar ut allt detta problemet är att efter jag la till 65% rabatten har jag fått helt fel samtalspris, skulle vara väldigt tacksam om någon läste igenom min kod och skriver vad som är fel. Skickar med både den felaktiga koden med 65% rabatten och den funktionella utan.
variabler: i ett samtal från 13:20 - 14:15 är h=13, h2=14, m=20 och m2=15
Kod:
Kod:
double kostnad(int min) //defination
{
double i;
double const rabbK1 = 0.85;
int const prisK = 3;
double const rabbK2 = 0.45;
double a,b,c;
if (min>30)
{
if (h<8)
{
a = (8-h)*60;
b = m;
c = min - (a+b);
if (c>0)
{
c = c * prisK * rabbK1;
a = (a+b) * prisK * rabbK1 * rabbK2;
i = a + c;
}
else
{
i= min * prisK * rabbK1 * rabbK2;
}
}
if (h2>18 || (h2=18 && 30<m2 && m2<60))
{
a = (h2-18)*60 - 30;
b = m2;
c = min - (a+b);
if (c>0)
{
c = c * prisK * rabbK1;
a = (a+b) * prisK * rabbK1 * rabbK2;
i = a + c;
}
else
{
i = min * prisK * rabbK1 * rabbK2;
}
}
else
{
i = min * prisK * rabbK1;
}
}
//-----------------------------------------------
else
{
if (h<8)
{
a = (8-h)*60;
b = m;
c = min - (a+b);
if (c>0)
{
c = c * prisK;
a = (a+b) * prisK * rabbK2;
i = a + c;
}
else
{
i = min * prisK * rabbK2;
}
}
if (h2>18 || (h2=18 && 30<m2 && m2<60))
{
a = (h2-18)*60 - 30;
b = m2;
c = min - (a+b);
if (c>0)
{
c = c * prisK;
a = (a+b) * prisK * rabbK2;
i = a + c;
}
else
{
i = min * prisK * rabbK2;
}
}
else
{
i = min * prisK;
}
}
return i;
}
Kod utan 65% rabatt:
Kod:
double kostnad(int min) //defination
{
double i;
double const rabbK1 = 0.85;
int const prisK = 3;
if (min>30)
{
i = min * prisK * rabbK1;
}
else
{
i = min * prisK;
}
return i;
}
__________________
Senast redigerad av IsobelRoss 2013-12-19 kl. 21:29.
Senast redigerad av IsobelRoss 2013-12-19 kl. 21:29.