Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ja aber das war falsch, ich sollte halt nur eine Ausgabe verwenden und mich jetzt an diesen Code halten der auch von anderen so geschrieben wurde.
Mit String Buffer etc. ist auch nicht so elegant es sollte schon so ca. gemacht werden scheint nur kleiner Fehler zu sein.. wäre nett wenn du mir helfen könntest?
Achtung nix für faule, so ganz ohne Schleife und if
9x9 Kästchen auf ein Papier, rauten einzeichnen so dass es schön aussieht und jeden Eintrag von Hand in ein 9x9 Array.
den dann eine lange einzige System.out.print anweisung. Ich glaube derjenige, der das sieht, würde dich steinigen :shock:
So wie das jetzt angefangen wurde muss es nur korrigiert werden, ansonsten ist das fachlich richtig was die Anforderungen angeht. Kann sein das ich mich beim Abschreiben verschrieben habe, deshalb mein Post.
Ein Rautenstern ist ein mit Rauten "#" ausgegebener Stern
000000#
00000##
0000###
000####
0000##
0000#
So ca. die Nullen müssen aber logischerweise weg..
mach doch einfach ein paar verschachtelte for - schleifen - verstehe momentan sowieso nicht was dir an deiner letzten lösung nicht gefällt, afaik kamen da keine ifs drin vor.
einfach eine schleife die leerzeichen macht und eine die rauten ausgibt.....
So einfach ist es nicht, mal ebend eine Schleife, dass ist kein Rautenrechteck oder so, wenn du es einfach findest.. nun denn freie Fahrt.. ich finds nicht.
Mit Ausgabe ist gemeint:
Die Raute richtig auszugeben. Also wirkliches System.out.print("#");
@Roar:
Diese Zeile entstammt der Musterlösung.
Aber wieso lößt mir das keiner (= wenn ich das mal vorsichtig wieder zum Ursprung bringen darf), statt zu diskutieren was wieso so ist, wenn es ebend so ist. Deshalb mein ich ja, so easy going ist's nämlich nicht.
Wenn einer also eine Idee hat, wie man diesen und keinen anderen Code mit kleinen Veränderungen dazu bringen kann den Stern auszugeben, dann wäre ich sehr verbunden. :applaus:
public class Stern {
public static void main(String[] args) {
for (int i = -4; i <= 4; i++) {
int j = (i < 0) ? -i : i;
for (int k = j; k >= 0; k--) {
for (k = 9 - 2 * j; k > 0; k--) {
System.out.print("#");
}
}
System.out.println();
}
}
}
Wäre zumindest schon mal ein dreieck, da müsste man noch zur mitte hin zunehmend blanks einfügen und nach unten wieder entfernen
Ganze ohne if's gehts ja nicht, aber man kann sie ein bisschen besser verstecken (hinter einer Multiplikationen. Das for-ist auch nur ein if, wie man das noch wegbringen könnte, weiss ich nicht): :wink:
Code:
int size = 4;
for( int x = -size; x <= size; x++ ){
for( int y = -size; y <= size+1; y++ ){
int sum = (int)(Math.sqrt( x*x ) + Math.sqrt( y*y ) + 0.5);
int out = sum - size - 1;
out >>>= 31;
int last = y - size - 1;
last >>>= 31;
last ^= 1;
int space = (last | out) ^ 1;
System.out.print( (char)(
space * ' ' +
out * 'x' +
last * '\n' ));
}
}
int max = 9;
for(int i = 1; i < max * 2; i += 2) {
int count = (i < max ? i : max - (i - max));
for(int j = 0; j < (max - count)/2; j++) {
System.out.print(' ');
}
for(int k = 0; k < count; k++) {
System.out.print("#");
}
System.out.println();
}
max ist die maximale breite
edit: uff zu spät aber ich glaub mein code is einfacher nachvollziehbar :shock: :autsch:
mhm, also der Code, den ich anfangs gepostet habe sollte funzen, wie gesagt halt nur einige Fehler könnten noch drin sein.
Danke für deine Mühen Beni, aber so aufwendig war er nicht, also das hätte ich sicher noch mitgeschrieben aber danke. Das Problem ist lediglich, dass ich nicht weiß wieso das so nicht läuft, also kürzer oder länger war er nicht.
Etwas strange.. mhm, naja vielleicht findet einer noch die Lösung aus diesem Ding hier einen Stern zu basteln, ohne allzuviel zu ändern:
Code:
public class Stern
{
public static void main(String[] args)
{
for (int i=-1;i<=4;i++)
{ int j=(i<0) ? -i:i;
for(int k=j;k>0;k--)
for( k=9-2*j;k>0;k--)
System.out.print("#");
System.out.println();
}
}
}
public class Stern {
public static void main(String[] args) {
for (int i = -4; i <= 4; i++) { //aus i=-1 mach i=-4
int j = (i < 0) ? -i : i;
for (int z = j; z > 0; z--) { //hinzugefügt, um
System.out.print(' ');} // leerzeichen zu bekommen
for (int k = j; k >= 0; k--) {//aus k>0 k>=0 gemacht
for (k = 9 - 2 * j; k > 0; k--) {
System.out.print("#");
}
}
System.out.println();
}
}