PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : JAVA: Ausgabe in Tabellenform mit x Spalten und y Zeilen


Gast
2005-11-08, 19:14:18
Hi, ich habe ein kleines Anfängerproblem :)

Und zwar möchte ich die Ausgabe folgendes Programms so haben dass es in 5 Spalten verläuft ( also dass es höchstens 5 Primzahlen ausgibt und dann in die nächste Zeile rutscht)

public class P5
{
public static void main(String args[])
{
for(int i = 1; i < 1000; i++)
{
boolean p = true;
for(int j = 2; j <= i; j++)
{
int a = i % j;
if(a == 0 && i != j)
{
p = false;
}
}
if(p)
{
System.out.println(i+"\t");
}
}
}
}

AlSvartr
2005-11-08, 20:04:04
public class P5
{
public static void main(String args[])
{
int k=0;
for(int i = 1; i < 1000; i++)
{

boolean p = true;
for(int j = 2; j <= i; j++)
{
int a = i % j;
if(a == 0 && i != j)
{
p = false;
}
}
if(p)
{
System.out.print(i+"\t");
k++;
if (k%5==0)
System.out.println();
}
}
}
}

gereggter Gast
2005-11-08, 20:32:20
Uhhh, deine Syntax. Da schüttelt es mir gleich. Hab da erstmal ein paar Tab's gesetzt! :smile:
Aber zu deinem Problem...
Der System-Befehl funktioniert auch mit einem einfachen 'print' und nicht nur mit einem 'println', der gleichzeitig immer eine Zeile weiter geht.
Du könntest jetzt zum Beispiel ein dummy-Integer nutzen, der immer bis fünf zählt und dann eine Zeile weiter geht, um dummy anschließend wieder auf 0 zu setzen.

public class P5
{

public static void main(String args[])
{
boolean p;
int dummy = 0;

for(int i = 1; i < 1000; i++) {
p = true;
for(int j = 2; j <= i; j++) {
int a = i % j;
if(a == 0 && i != j)
p = false;
}
if(p) {
System.out.print(i+"\t");
dummy++;
}
if(dummy == 5) { \\nach fünf Primzahlen gehe eine Zeile weiter
System.out.println();
dummy = 0;
}
}
}
}


Achja, initialisiere p am besten nur einmal und nicht bei jedem Schleifendurchlauf.


ps. die gleiche Idee hatte auch AlSvartr

Gast
2005-11-08, 23:17:13
ich glaub ich steh gewaltig auf den schlauch was die ausgabe angeht :) hab nun ein weiteres programm welches das kleine 1x1 ausgibt allerdings weiß ich da auch nicht wie ich das in tabellenform ausgeben soll :(

das ganze soll nur die ergebnisse beinhalten und etwa so aussehen

1 2
2 4
3 6...
4

mein Code:
public class P5_4
{

public static void main(String args[])
{


int a=1, b=1;
int counter=0;

for ( a=1;a<=10;a++)
{
for ( b=1;b<=10;b++)


System.out.print( a*b+" " );

}



}




}

Gast
2005-11-08, 23:22:07
oh habs jetzt sogar selber hingekriegt ..
einfach bei system.out.print ( a*b + " \t" ) ...

da das einmaleins umkehrbar ist passt es so auch obwohls nich ganz optimal ist

trotzdem danke auch für die vorherige hilfe :D