kann mir bitte jemand helfen?
-
ich komme einfach nicht weiter...ich soll anhand von einer schleife und 2 variablen diese ausgabe auf dem monitor ausgeben.
32 33 34 35 36 37 38 ....47
! " # $ % & ....
...
...
die ausgabe ist 16 spalten breit und 28 zeilen hoch ich soll die zahlen von 32 bis 255 mit den darunter liegenden zeichen hochzählen.die erste zeile muß eine leerzeile sein.ich darf nur 2 variablen verwenden.eine muß die zeilenzahl prüfen
weil diese variable in der mitte abrechen soll zu zählen.die andere ist für die
spaltenzahl zuständig.ich darf kein putchar für die zeichen verwenden.ich komme einfach nicht mehr weiter...meine versuche enden alle so
32 33 ! 34 " 35 ...ich denke man muß 3 verschachtelte schleifen benutzen mit arrays array[28][16]
oder array[spalte][16] aber vielleicht denk ich auch zu kompliziert...
kann mir bitte jemand weiter helfen....
-
Hm, ich will jetzt keine fertige Lösung posten. Deshalb zeige am besten, was Du bereits hast und ich (wir) versuchen dann Dein Programm zu verbessern.
Der Lerneffekt ist dabei sicher größer.
Nebenbei, ich habs mit nur einer einzigen (while-)Schleife und ohne Arrays (Du hast ja selbst geschrieben, dass man nur zwei Variablen verwenden darf) gemacht. Vielleicht ist Dein Ansatz also tatsächlich übermäßig kompliziert, aber das sehen wir ja dann.
-
hallo!
danke erstmal für deine antwort...ich glaubs nicht mit nur einer while schleife???
also ich zeig dir mal wie umständlich ich das gemacht hab....
also ich hab einmal die variablen zeile u. spalte benant...for(spalte=32;spalte<48;spalte=spalt+1){
printf("%4d",spalte);
}
printf("\n");for(zeile=32;zeile<48;zeile=zeile+1){
printf("%4c",zeile);
}
printf("\n");und das geht jetzt so weiter bis die zeilen und spaltenzahl erreicht ist...
hast du das mit der while schleife so gemacht?,#include<stdio.h>
void main(void){
int zeile=32;
char spalte=' ';while(zeile<144){
if (zeile<zeile+15)
zeile=zeile+1;if (spalte<spalte+15)
spalte=spalte+1;printf("%4d",zeile);
printf("%4c",spalte);
}
}
da ist es aber wieder so das die zeichen neben den zahlen stehen...
irgendwo ist ein denkfehler....aber wo???
-
hey, warum denn nicht "einfach" rekursiv?!?!?!?
int rekWrite(int run, int end) { if(run<=end) { printf("%d \n",run); printf("%c ",run); rekWrite(run+1,end); }else{ return 0; } }
nur um mal alle zu verwirren
-
ich habs jetzt...und weiß jetzt wo mein denkfehler war...
#include <stdio.h>
int main()
{
int zeile,spalte;for(zeile = 0;zeile < 14;zeile++)
{
for(spalte = 0;spalte < 16;spalte++)
{
printf("%3d ",spalte + zeile * 16 + 32);
}
printf("\n\n");for(spalte = 0;spalte < 16;spalte++)
{
printf("%3c ",spalte + zeile * 16 + 32);
}
printf("\n\n");
}return 0;
-
Ich glaube, der Problem liegt darin, dass Du die Variablen zeile und spalte irgendwie ziemlich zweckentfremdest. Du benutzt die ja im Prinzip als ganz normale Zählvariablen, um die Zeichen hochzuzählen, aber nicht um die Zeile und Spalte zu erfassen, in der Du dich bei der Ausgabe gerade befindest. Deshalb brauchst Du so viele (for-)Schleifen.
Du kannst aber mithilfe der Spalte und der Zeile genau ausrechnen, welches Zeichen Du an welcher Position ausgeben musst. Das geht ann tatsächlich innerhalb einer einzigen Schleife (wobei bei mir dann zeile eine "Doppelzeile" repräsentiert, was aber - wenn ich die Aufgabenstellung richtig verstanden habe, sogar gefordert ist).
Ich poste jetzt doch mal eine Lösung, damit Du vielleicht deutlicher siehst, wo der "gedankliche" Unterschied liegt:#include <stdio.h> int main() { int zeile = 0; int spalte = 0; printf("\n"); while(zeile != 14) { spalte = 0; while(spalte != 16) { printf("%d ", 32+spalte+zeile*16); spalte++; } printf("\n"); spalte = 0; while(spalte != 16) { printf("%c ", 32+spalte+zeile*16); spalte++; } printf("\n"); zeile++; } return 0; }
-
ja das weiß ich jetzt...ich bin noch ziemlicher anfänger und bin grad dabei es zu lernen.ich danke dir und allen die mir helfen wollten...DANKE!
-
Als ich meine Nachricht abgeschickt habe, hab ich Dein Posting noch nicht gesehen, deswegen war das letzte von mir jetzt überflüssig...
-
das ist schon ok...jetzt hab ich ein anderes problem...
ich soll 2 summen arrays anhand einer schleife zusammen zählen...
ich habe ein array summe1[4][5] und ein array summe2[5] und ein array für das ergebniss erg[4] meine lösung sieht so aus...int erg[5];
int erg[4][5];
int summe2[5];
int k;
int a;for(k=0;k<h;k++){
for(a=0;a<5;a++){
erg[k]=erg[k]+summe1[k][a]*summe[a];
}
}
die einzelnen ergebnisse sollten in erg[5] abgelegt werden...so das ich sie mit printf("%d",erg[0],erg[1]);usw..einzeln abrufen kann...das geht aber so nicht ich bekomme jedesmal nur ein großes ergebniss...