6 svar
1334 visningar
nutella143 74 – Fd. Medlem
Postad: 4 apr 2018 16:05 Redigerad: 4 apr 2018 19:12

multiplikationstabellen i kvadratform

min kod ser hittills ut såhär:

 

public class Multi
{
public static void main(String[] args)
{

Scanner input = new Scanner(System.in);

System.out.print("skriv in önskad storlek: ");
int s = input.nextInt();                //här lagras det du skriver in.

System.out.print (" x | ");             //skriver ut "x" i början va tabellen

int c1 = 1;

for (int r1 = 0; c1 <= s; c1++)
{
System.out.printf ("%3d | ", c1);
}                          //loop som skriver ut den första raden

System.out.println ();               //hoppa en rad


int rad = 0;

for (int linje = 0; rad <= s; rad++)
{
System.out.print ("----");
}                               //loop som skriver ut skiljeraden

System.out.println ();                   //hoppa en rad


int r = 1;
int c = 1;

for (int i = 0; i <= s; r++)
{

for (int p = 0; p <= s; c++)
{
System.out.printf ("%3d | ", r + c * c1);
}
System.out.println ();
}

// här borde multiplikationstabellen skrivas ut
}
}

 

 

när programmet körs slutar den aldrig bara skrivs ut siffror efter siffros hinner inte ens se vad som händer... hjälp!

PeterÅ 842
Postad: 5 apr 2018 18:48 Redigerad: 5 apr 2018 18:51

Det ser ut som om du kopierar kod från lite varstans utan att ha koll på vad som sker. Här till exempel:

for (int i = 0; i <= s; r++)

Variabel i ska börja med noll och öka tills i är större än s. Så långt allt väl men sedan ökar du på r med ett och struntar i värdet på i.

Jag rekommenderar dig att läsa på ordentligt om for-loopar. Det är grundläggande kunskap som behövs i alla programmeringsspråk. Om du inte förstår hur en vanlig for-loop fungerar kommer du att råka ut för just det som du här har problem med.

nutella143 74 – Fd. Medlem
Postad: 6 apr 2018 16:52
PeterÅ skrev :

Det ser ut som om du kopierar kod från lite varstans utan att ha koll på vad som sker. Här till exempel:

for (int i = 0; i <= s; r++)

Variabel i ska börja med noll och öka tills i är större än s. Så långt allt väl men sedan ökar du på r med ett och struntar i värdet på i.

Jag rekommenderar dig att läsa på ordentligt om for-loopar. Det är grundläggande kunskap som behövs i alla programmeringsspråk. Om du inte förstår hur en vanlig for-loop fungerar kommer du att råka ut för just det som du här har problem med.

när jag ska göra for-loopar fårj ag till det men när jag ska ha en nästlad loop så dunkar det inte. läroboken är inte till nån hjälp alls :S

PeterÅ 842
Postad: 6 apr 2018 17:38

Vidhåller att det verkar lite si och så med både din programmering och nu också din stavning. Programmering kan inte utföras på ett ungefär. Om inte läroboken ger svar kan du försöka med Google. Sök på java nested for loop till exempel.

Lindehaven 820 – Lärare
Postad: 18 apr 2018 14:26

Håller med PeterÅ att du behöver förstå exakt hur for-slingor (for loops) fungerar. Det finns inget ungefärligt vid programmering. Ett exempel som du kan laborera med för att förstå bättre:

for (int a = 1; a <= 4; ++a) {
    for (int b = 3; b > 0; --b) {
        System.out.printf("a=%d, b=%d, a*b=%d \t", a, b, a*b);
    }
    System.out.println();
}

Den yttre slingan går från 1 upp till 4. Den inre slingan går från 3 ned till 1. Eftersom den inre slingan ligger i den yttre slingan så är de nästlade. Totalt kommer slingorna att itereras 4*3=12 gånger.

Prova att ändra a = 1 till a = 3b = 3 till b = 5b > 0 till b >= 0, b > 0 till b < a, et c för att se vad som händer. Lägg tid på att förstå varför det händer. När du förstår detta så kommer du att kunna använda for-slingor som du vill.

nutella143 74 – Fd. Medlem
Postad: 24 apr 2018 10:38

Tack så jätte mycket Lindehaven! precis detta jag saknar i mina distansstudier någon som förklarar mer utförligt. ska pilla å ändra tills det sitter =)

Lindehaven 820 – Lärare
Postad: 24 apr 2018 12:25

Varsågod nutella143. Roligt att kunna hjälpa. Skriv igen om du fastnar på något.

Svara Avbryt
Close