Ihre Daten sind organisiert als eine 10-Element-Array von char-Arrays mit jeweils Platz für 80 Zeichen (Null-Terminators char inklusive). Die geraden Elemente 0, 2, 4 usw. enthalten Zahlenliterale, die ungeraden Elemente 1, 3, 4 usw. enthalten die Namen dieser Zahlen. BTW: 80 Zeichen ist viel Platz für so kurze Strings reserviert.
Die Ausgabe sollte in zwei Spalten mit den geraden Elemente in der ersten und die ungeraden Elemente in der zweiten Spalte formatiert werden, sieht jede Reihe wie folgt aus:
number
→ name
↵
Wie dies zu tun in einer Schleife, fand ich es interessant zu den Formatparameter für printf
auswählen, die auf dem Index je i
ungerade oder gar:
#include <stdio.h>
char text[10][80] = {
"0", "Zero",
"1", "One",
"2", "Two",
"3", "Three",
"4", "Four",
};
int main(void) {
int i;
for (i=0; i<10; i++) {
printf((i&1) ? "%s\n" : "%s\t", text[i]);
}
return 0;
}
Auch wenn es oft eine gute Idee ist, um das Problem zu schreiben und Format-Code so nah wie möglich, die durch gelöst sollte, ist es manchmal verschleiern kann, was wirklich vor sich geht. Dies ist, was der Compiler "sieht":
char text[10][80] = {
"0",
"Zero",
"1",
"One",
"2",
"Two",
"3",
"Three",
"4",
"Four",
};
..., die eine bequeme Kurzform ist char-Arrays als Strings zu initialisieren, wird es intern in diesem
char text[10][80] = {
{'0'},
{'Z', 'e', 'r', 'o'},
{'1'},
{'O', 'n', 'e'},
{'2'},
{'T', 'w', 'o'},
{'3'},
{'T', 'h', 'r', 'e', 'e'},
{'4'},
{'F', 'o', 'u', 'r'},
};
Der Abschluss `
erweitert \ 0 'Zeichen werden automatisch hinzugefügt, da jedes Array, das mit weniger Werten als Elementen initialisiert wird, mit dem Standardwert gefüllt wird.
Es spiegelt die gegebene Aufgabe am besten, wie ich finde. Wenn Sie sich für den "schnellsten" Code interessieren, scheint ameyCU's answer ein guter Ansatz zu sein.
Siehe diesen Code in einer live demo.
'für (j = 0; j <1; j ++)' was ist der Zweck? –
Sie müssen Array-Element wie Text [i] [j] in printf-Anweisung drucken. – Murli
Um den Spaltenraum zu erstellen. – Sayeed