webForumDet fria alternativet

Hjälp med läxa...

Java

7 svar · 419 visningar · startad av kajus

Medlem sedan sep. 2000221 inlägg
Frågan#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?

Medlem 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...

Medlem sedan juni 20004 308 inlägg
#3

(Flyttar tråden till Java-forumet)

Medlem 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...");
}

}
Medlem 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...

Medlem sedan aug. 20022 027 inlägg
#6

Denna rad som stulade till det:

summa = heltalsSlump1*heltalsSlump1;

ska väl vara:

summa = heltalsSlump1*heltalsSlump2;

:)

Medlem 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...");
	}
	
}
Medlem sedan sep. 2000221 inlägg
#8

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

259 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)