Ascii-Tabelle
-
Halle leute,
Folgende Aufgabe:
Schreiben Sie ein Programm, das eine ASCII-Tabelle der Zahlen von 32 - 127 in 4Doppel- Spalten ausgibt. Zu jeder Zahl zwischen 32 und 127 soll der ent- sprechende ASCII-Characterangezeigt werden: 32 56 8 80 P 104 h 33 ! 57 9 81 Q 105 i 34 " 58 : 82 R 106 j 35 # 59 ; 83 S 107 k 36 $ 60 < 84 T 108 l . . . . . . 55 7 79 O 103 g 127 Hinweis: Verwenden Sie das gleiche Grundmuster, wie in der obigen Aufga- be und überlegen Sie sich, welchen Wert Sie in der i-ten Zeile und der j-ten Spalte darstellen müssen. D.h. wie berechnen Sie aus dem Spalten- und dem Zeilen-Index denWert, den Sie – einmalals Zahl und einmal als Buchstaben – darstellen wollen?
Mein prog kann die tabelle nur untereinander ausgeben!ich weiss nicht wie ich meine sie in 4spalten ausgeben soll!!!Vielleicht mir Array???
bitte helft mirmein Prog sieht bisjetzt nur so aus:
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int i,j; int zahl[95][95]; for (i=32;i<128;i++){ for (j=32;j<128;j++) if (i==j) printf ("%d = %c\n",i,j); } system("PAUSE"); return 0; }
Gruß Toni
-
Ist doch eigentlich ganz einfach, du addierst einfach für jede Spalte immer 24 zum char hinzu. Ganz billiger Vorschlag:
#include <stdio.h> int main() { int i=32; for ( ; i<56;++i) printf("%i %c\t%i %c\t%i %c\t%i %c\n", i, i, i+24, i+24, i+48, i+48, i+72,i+72); return 0; };
MfG
GPC
-
In dem Fall soll woll eher der Umgang mit verschachtelten Schleifen gelehrt werden. Eventuell ist etwas in diese Richtung angebrachter:
for(int i = 0; i < (128-32)/4; ++i) { for(int j = 0; j < 4; ++j) { int c = (i + 32) + (128-32)/4 * j; printf("%d %c ",c,c); } printf("\n"); }
Edit: Doch noch richtiggestellt weil meine Bedingung ihn auf die falsche Fährte gelockt hätte.
MfG SideWinder
-
In dem Fall soll woll eher der Umgang mit verschachtelten Schleifen gelehrt werden.
kann schon sein, aber warum einfach, wenn's auch kompliziert geht ?
MfG
GPC
-
Außerdem ist bei meiner Übung ohnehin was falsch bei den Schleifenbedinungen wie ich gerade bemerke. Aber das kann ich dann ja zur Übung dem Threadersteller überlassen
Edit: s.o.
MfG SideWinder
-
SideWinder schrieb:
Außerdem ist bei meiner Übung ohnehin was falsch bei den Schleifenbedinungen wie ich gerade bemerke. Aber das kann ich dann ja zur Übung dem Threadersteller überlassen
Eben, Übung macht den Meister.
MfG
GPC
-
SideWinder schrieb:
In dem Fall soll woll eher der Umgang mit verschachtelten Schleifen gelehrt werden. Eventuell ist etwas in diese Richtung angebrachter:
for(int i = 0; i < (128-32)/4; ++i) { for(int j = 0; j < 4; ++j) { int c = (i + 32) + (128-32)/4 * j; printf("%d %c ",c,c); } printf("\n"); }
Edit: Doch noch richtiggestellt weil meine Bedingung ihn auf die falsche Fährte gelockt hätte.
MfG SideWinder
Ich verstehe um ehrlich zu sein grad nur bahnhof
wie kommst du auf den Ausdruck "i<(128-32)/4" bzw was soll sie bewirken?
Also nach deiner Lösung zur folge war ich auf dem falschen weg...Bitte erklär mal,was du das genau gemacht hast?!
-
(128-32) ASCII-Tabelle der Zahlen von 32 - 127
/4 ... for(int j = 0; j < 4; ++j) in 4Doppel- Spalten
PS: Keine fertigen Lösungen!!!ELF Nochmal!
-
(128-32) = Anzahl der ASCII-Zeichen gesamt / 4 = Anzahl der ASCII-Zeichen pro Spalte. i ist somit der Zeilen-Zähler.
j geht von 0-3 und ist damit der Spalten-Zähler.
Mit (i + 32) + (128-32)/4 * j rechne ich dann das Zeichen aus. An 0/0 steht ja nicht das Zeichen mit dem ASCII-Code 0 sondern mit dem ASCII-Code 32 (= Erster Ausdruck). Der zweite Ausdruck mulitpliziert dann 32 mit dem Faktor für die einzelnen Spalten. Da j in der ersten Spalte 0 ist, evaluiert der Ausdruck zu 0.
MfG SideWinder
-
PS: Keine fertigen Lösungen!!!ELF Nochmal!
Jaja. Ich schau schon, ob er sich damit beschäftigt oder nicht.
MfG SideWInder
-
SideWinder schrieb:
(128-32) = Anzahl der ASCII-Zeichen gesamt / 4 = Anzahl der ASCII-Zeichen pro Spalte. i ist somit der Zeilen-Zähler.
j geht von 0-3 und ist damit der Spalten-Zähler.
Mit (i + 32) + (128-32)/4 * j rechne ich dann das Zeichen aus. An 0/0 steht ja nicht das Zeichen mit dem ASCII-Code 0 sondern mit dem ASCII-Code 32 (= Erster Ausdruck). Der zweite Ausdruck mulitpliziert dann 32 mit dem Faktor für die einzelnen Spalten. Da j in der ersten Spalte 0 ist, evaluiert der Ausdruck zu 0.
MfG SideWinder
Vielen dank erstmal für die mühe!
Man könnte theoretisch auch anstatt "(128-32)/4" auch nur 24 sagen können!Ist nämlich auf den ersten blick etwas verwirrend!Ich verstehe nur nicht mit welchem ausdruck du in deiner lösung dafür sorgst dass man in die nächste zeile springen soll??
mfg Toni