Zeichenweise einlesen und in fortlaufender variable speichern
Dabei soll es egal sein, wieviele Nullen und Einsen man eingibt.
Wichtig ist, dass jedes Zeichen einzeln gelesen und gespeichert wird.
Ich habe da auch glatt eine Idee gehabt, leider endet diese in einer Endlos-Schleife.
#include <stdlib.h>
int main(int argc, char *argv)
{
int a,b,c,erg,zahl;
a=0;
b=1;
c=0;
erg=0;
zahl=0;
char eingabe;
printf("Bitte geben Sie eine Binaere Zahl ein!");
scanf("%c",&eingabe);
while( eingabe !='#')
{
eingabe !=1 |
}
else
{
("x%d",a) = eingabe;
a++;
}
}
while (a-b !=0)
{
a=a-b;
("x%d",a) = zahl;
erg = erg + zahl * 16^c;
c++;
b++;
}
printf("\nDas Ergebnis lautet:%d",erg);
fflush(stdin);
getchar();
}
Vielleicht sieht einer ja direkt mein Problem.
Gruß Totty
Content-ID: 153544
Url: https://administrator.de/contentid/153544
Ausgedruckt am: 20.11.2024 um 03:11 Uhr
Mhm, die Sache mit der Endlosschleife ist anversicht klar, da ja nur ein einziges Zeichen (%c) vor (anstatt in) der While-Schleife eingelesen wird
Ich würde Zahlenwerte (%d) einlesen, wobei ein einfacher Test mit "eingabe > 1" genügen sollte.
Mit C habe ich mich seit mehr als 15 Jahre nicht mehr beschäftigt. Von daher verstehe ich z.B. das hier
("x%d",a) = eingabe; |
Gruß Dieter
Das ist ja auch kein C, sondern Wünsch-dir-Was.
Und die Zahl 0 und der String "0" (den
scanf
immer liefern würde) sind in C ein großer Unterschied.Und warum man
16 XOR c
rechnen sollte weiß ich auch nicht.^
ist nicht der Potenz-, sondern der Exklusiv-Oder-Operator in C.Wertigkeiten berechnet man auch mit Potenz 2.
12345678
---------
10010101
#ist
1*2^7+
0*2^6+
0*2^5+
1*2^4+
0*2^3+
1*2^2+
0*2^1+
1*2^0
--------
149
Zudem gibt es für
n = n + x
die Schreibweise n += x