dragonballz
Grünschnabel
Hallo Leute,
ich wollte nen Programm schreiben, mit dem ich in C eine Zahl in Binär ausgebe. Dazu habe ich noch zusätzlich eine Funktion geschrieben, die ein ArrayFeld umdrehen soll, also z.B. 123 = 321, da mein Programm zur Umrechnung von Zahl zur Binär die Binärzahl umgedreht darstellt.
Mein Code ist etwas lang, ich hoffe es macht euch nichts aus euch etwas Zeit zu nehmen um sich reinzudenken:
MEin Problem: Wenn ich die Methode "Zeichen_drehen" verwenden möchte damit das Array, in dem die umgedrehte Binärzahl gespeichert ist, die Binärzahl umdreht(also richtig darstellt), wird am Ende nur eine Zahl angezeigt.
Versucht es mal seber mit eurem IDE.
Ohne die drittletzte Anweisung "Zeichenkette_drehen(str)" wird der komplette Arrayinhalt angezeigt, aber natürlich wie gesagt umgedrehte Binärzahlen.
PS: Ich weiss es gibt bestimmt irgendwoe in der Biblithek von C eine Methode mit der man Strings verdrehen kann, ich möchte es aber nal selber versuchen
ich wollte nen Programm schreiben, mit dem ich in C eine Zahl in Binär ausgebe. Dazu habe ich noch zusätzlich eine Funktion geschrieben, die ein ArrayFeld umdrehen soll, also z.B. 123 = 321, da mein Programm zur Umrechnung von Zahl zur Binär die Binärzahl umgedreht darstellt.
Mein Code ist etwas lang, ich hoffe es macht euch nichts aus euch etwas Zeit zu nehmen um sich reinzudenken:
MEin Problem: Wenn ich die Methode "Zeichen_drehen" verwenden möchte damit das Array, in dem die umgedrehte Binärzahl gespeichert ist, die Binärzahl umdreht(also richtig darstellt), wird am Ende nur eine Zahl angezeigt.
Versucht es mal seber mit eurem IDE.
Ohne die drittletzte Anweisung "Zeichenkette_drehen(str)" wird der komplette Arrayinhalt angezeigt, aber natürlich wie gesagt umgedrehte Binärzahlen.
C++:
#include <stdio.h>
void Zeichenkette_drehen(char bla[])
{
int i=0,c=0;
while(bla[i] != '\0') /* Damit berechne ich die Zeichenlänge im Feld bla*/
{
i++;
c++;
}
char um[ c];
for(i=0;c>0;c--) /*hier pack ich alles von bla[] in um[] (um[] dient als zwischenspeicher)*/
{
um[i]=bla[c-1];
}
um[i+1] = '\0';
for(c=0;i>=0;i--,c++) /* Hier pack ich wieder als vom Zwischenspeicher in bla[] */
{
bla[ c]=um[ c];
}
bla[ c] = '\0';
}
int main()
{
int i=0, zahl, b=DIGITS; /* DIGITS wurde in einer Header Datei definiert und ist 8 */
char str[20];
scanf("%d", &zahl);
while(b >0)
{
if(zahl%2 == 1)
{
str[i] = '1';
}
else
str[i] = '0';
zahl= zahl/2;
i++;
b--;
}
str[i] = '\0';
Zeichenkette_drehen(str);
printf ("Zahl int:%d als Binaerzahl: %s\n",zahl, str);
return 0;
}
PS: Ich weiss es gibt bestimmt irgendwoe in der Biblithek von C eine Methode mit der man Strings verdrehen kann, ich möchte es aber nal selber versuchen
