Tabelle ist verrutscht
-
Hallo!
Dies ist mein Programm, in dem eine Tabelle erzeugt wird. Jedoch verrutschen die Zahlen in der Tabelle.
Kann mir jemand sagen, wie ich die Zahlen "vernünftig" ausgebe?!
#include <stdafx.h> #include <stdio.h> int i=0; int k=0; void tabelle(void); int mul(int, int); int kl=0; void main(void) { tabelle(); scanf("%d",&kl); } void tabelle(void) { printf("\n\t|\n\t| 1 2 3 4 5 6 7 8 9 10\n------------------------------------------------\n"); for(i=1; i<=10; i++) { printf(" %d\t|",i); for(k=1; k<=10; k++) { printf(" %d ",mul(i,k)); } printf("\n"); } } int mul(int i,int k) { return(i*k); }
Gruß Sheddy
-
Gibt noch was zu basteln für Dich, aber Du wirst es schaffen.
printf(" %2d ",mul(i,k)); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
kannst du mir sagen, wie man das nennt?!
Und wie ich das benutzen muss?! also, was es genau macht?!
sheddy
-
Die Zeile wo
printf(" %d ",mul(i,k));
stand wird durch diese Zeile ersetzt
printf(" %2d ",mul(i,k));
Neu ist die 2, sie gibt die maximale Feldbreite an, dadurch kannst Du die Tabelle ordendlich darstellen.
-
ja, okay, das habe ich ja verstanden.
Ich frage mich bloß, wieso das funktioniert.
Also die Zahlen über der 100 werden bei %3d bis auf die letzte Ziffer verschoben, dass das gut aussieht.
Aber warum wird die letzte Zeile mit 10, 20, ... ,100 nicht verschoben?!
Das ist mir nicht klar..
-
Du sagst printf() mit der Angabe %3d, daß du 3 Zeichen für die Zahl haben möchtest - wenn sie kürzer ist, wird sie automatisch mit Leerzeichen aufgefüllt.
(btw, wenn die Zahl größer wird als angegeben, verschiebt sich die Tabelle trotzdem)