Zifferumkehr-und-in-8er-Blöcken-einteil_Programm :)
-
Hallo,
Möchte ein Programm schreiben welches zuerst max. 32 Ziffern einliest, danach verkehrt herum ausgibt und gleichzeitig in 8er Blöcken einteilt. Habs nach längerem probieren und googlen immer noch nicht hinbekommen. Ich hoffe ihr könnt mir helfen und flamt mich wegen meines "noobigen" Programmes nicht.
Danke schon mal im Voraus.
FischlingerPS: Bei weniger als 32 eingaben kommen komische Ausgaben und das einteilen in 8er Blöcke funktioniert nicht.
#include <stdio.h> #include <conio.h> int main (void) { int ziffer, zahl[33], i = 0, v = 0; printf("Ende mit 1\n"); while (1) { printf ("Ziffer eingeben: "); fflush(stdin); scanf("%d", &ziffer); if (ziffer == 1 || i == 0) { break; } i++; zahl[i] = ziffer; } while (i >= 1) { i--; v++; printf ("%d", zahl[i]); if (v == 8) { v = 0; printf(" "); } } getch(); return 0; }
-
Ziffernumkehr und Einteilung ist nicht wirklich eine Rechnung. Wenn du nicht rechnen möchtest, dann lies auch keine Zahlen. Du willst Ziffern (= Zeichen) lesen und darauf dann Zeichenkettenoperationen anwenden. Mit dieser Herangehensweise sollte das sowohl einfacher als auch übersichtlicher sein.
-
Mit welcher Herangehensweise?
Irgendwie versteh ich deine Antwort nicht.
-
Warum liest du Zahlen? Umkehren und Leerzeichen einfügen sind Zeichenkettenoperationen.
-
Fischlinger schrieb:
Mit welcher Herangehensweise?
Irgendwie versteh ich deine Antwort nicht.er meint du sollst die eingabe in ein char array einlesen
:xmas1:
-
Wie soll bei deiner Ausgabe v denn jemals den Wert 8 erreichen?
Der Index bei einem Array in C fängt immer bei 0 (Null) an.
Durch das
i++;
vor demzahl[i] = ziffer;
speicherst du die erste Zahl beim Index 1.
-
Sry bin noch ziemlich am Anfang was programmieren angeht.
Könnte mal jemand ein Beispiel-Code für das Problem posten.
Vielleicht versteh ichs dann.
-
Fischlinger schrieb:
Sry bin noch ziemlich am Anfang was programmieren angeht.
Könnte mal jemand ein Beispiel-Code für das Problem posten.
Vielleicht versteh ichs dann.char zahl[33]; ... scanf("%32s", zahl); ... for(i=0;zahl[i] != '\0'; i++) { putchar(zahl[i]); } putchar('\n');
-
DirkB schrieb:
char zahl[33]; ... scanf("%32s", zahl); ...
und dann einfach umdrehen, oder ?
void swap(char *a, char *b) { char x = *a; *a = *b; *b = x; } void reverse(char *str) { int len,i; len = strlen( str ); for(i=0; i<((len+1)/2); i++) swap( &str[i], &str[len-i]); }
-
merano schrieb:
und dann einfach umdrehen, oder ?
Warum?
Das kann man auch bei der Ausgabe machen.