webForumDet fria alternativet

Hjälp med läxa...

7 svar · 419 visningar · startad av kajus

kajusMedlem sedan sep. 2000221 inlägg
#1

Hej. Skulle någon kunna hjälpa mig med detta nybörjarprogram som vi hade i läxa.

public class traning
{

public static void main(String\[\] args)
{
int summa;
int heltalsSlump1;
int heltalsSlump2;
int ggr = 1;
heltalsSlump1 =  (int)(Math.random()\*100);
heltalsSlump2 =  (int)(Math.random()\*100);
summa = heltalsSlump1\*heltalsSlump1;
System.out.print("Gissa vad " + heltalsSlump1 + "\*" + heltalsSlump2 + " blir...");
int svar = Keyboard.readInt();
while (summa != svar)
	{
	if (svar \> summa)
		{
		System.out.print("Talet är mindre än det du svarade.");
		}
	else			{
		System.out.print("Talet är större än det du svarade.");
		}
	System.out.print("Gissa vad " + heltalsSlump1 + "\*" + heltalsSlump2 + " blir...");
	svar = Keyboard.readInt();
	ggr++;
	
	}
System.out.print("Grattis! Du listade ut att produkten är " + summa + "och det tog dig " + ggr + "gånger...");
}

}

Vad är det för fel?

kajusMedlem sedan sep. 2000221 inlägg
#2

Kan tillägga att programmet går att köra men det är precis som den räknar fel och när man skriver in det rätta talet fortsätter den att svara för stort eller för litet...

JojoxxMedlem sedan juni 20004 308 inlägg
#3

(Flyttar tråden till Java-forumet)

LarsGMedlem sedan dec. 200012 464 inlägg
#4
public class traning
{

public static void main(String[] args)
{
int summa;
int heltalsSlump1;
int heltalsSlump2;
int ggr = 1;
heltalsSlump1 = (int)(Math.random()*100);
heltalsSlump2 = (int)(Math.random()*100);
summa = heltalsSlump1*heltalsSlump1;

int svar; 
while (true)
{
System.out.print("Gissa vad " + heltalsSlump1 + "*" + heltalsSlump2 + " blir...");
svar = Keyboard.readInt();
if ( svar == summa ) {
   break;
}
if (svar > summa)
{
System.out.print("Talet är mindre än det du svarade.");
}
else {
System.out.print("Talet är större än det du svarade.");
}
ggr++;

}
System.out.print("Grattis! Du listade ut att produkten är " + summa + "och det tog dig " + ggr + "gånger...");
}

}
kajusMedlem sedan sep. 2000221 inlägg
#5

funkar fortfarande inte... när man skriver in det rätta svaret så verkar det som om while-satsen fortsätter...

dhoMedlem sedan aug. 20022 027 inlägg
#6

Denna rad som stulade till det:

summa = heltalsSlump1*heltalsSlump1;

ska väl vara:

summa = heltalsSlump1*heltalsSlump2;

:)

dhoMedlem sedan aug. 20022 027 inlägg
#7

Så detta fungerar:

public class training
{
	
	public static void main(String[] args)
	{
		
		int summa;
		int heltalsSlump1;
		int heltalsSlump2;
		int ggr = 0;
		int svar; 
		
		heltalsSlump1 = (int)(Math.random()*100);
		heltalsSlump2 = (int)(Math.random()*100);
		summa = heltalsSlump1*heltalsSlump2;
		
		do
		{
			System.out.println("Gissa vad " + heltalsSlump1 + "*" + heltalsSlump2 + " blir...");
			svar = Keyboard.readInt();						
			
			if (svar > summa)
			{
				System.out.println("Talet är mindre än det du svarade.");
			}
			else if (svar < summa)
			{
				System.out.println("Talet är större än det du svarade.");
			}			
			
			ggr++;
			
		}
		while(svar != summa);
		
		System.out.print("Grattis! Du listade ut att produkten är " + summa + "och det tog dig " + ggr + "gånger...");
	}
	
}
kajusMedlem sedan sep. 2000221 inlägg
#8

ok... tack... det var ju därför den räknade "fel" hela tiden...

126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)