[vox-tech] C-Newbie needs help with a source-code

vox-tech@lists.lugod.org vox-tech@lists.lugod.org
Thu, 30 Oct 2003 15:06:03 +0100


/////////////////////////////////////////////////////////////////////=0A/* =
Mit diesem Programme m=F6chte ich=0ADezimalzahlen in Zahlen des Bin=E4ren=
=0ASystems umwandeln und diese anschlie=DFend=0Aausgeben */=0A=0A#include <=
stdio.h>=0A=0Amain () {=0A=0A    int zahl;     ///=0A    int bit =3D 0;  //=
/ Variablendeklaration der "zahl", des "bit" und der Z=E4hlvariable "i"=0A =
   int i =3D 0;    ///=0A    int a =3D 0;=0A    fprintf(stderr,"Bitte geben=
 sie eine positive Zahl ein, welche dann in das duale Zahlensystem umgewand=
elt werden soll:\n");             /// Ausgabe=0A    scanf("%d", &zahl); ///=
 Einlesen auf Adresse &zahl=0A=0A    if(zahl > 2147483646){=0A=09printf("Di=
e Zahl ist zu gro=DF!!!\n"); /// aussortieren zu gro=DFer Zahlen=0A    }els=
e{=0A=09if(zahl < 0){=0A=09    printf("Ich sagte doch POSITIVE Zahl...\n");=
 /// aussortieren negativer Zahlen=0A=09}else{=0A=0A=09    int lange =3D be=
stimme_laenge(zahl);  =0A/// Initialisierung und Belegung von laenge mit de=
m R=FCckgabewert der Funktion "bestimme_laenge", der die Variable "zahl" =
=FCbergeben wird=0A=09    int Dec[lange-1];  /// Initialisierung eines Arra=
y mit der L=E4nge lange bzw. bis zur Stelle lange-1=0A=0A=09    printf("Die=
 Zahl %d im dualen System ausgedr=FCckt hei=DFt:\n", zahl);=0A=0A=09    whi=
le (zahl > 0){=0A=09=09bit =3D zahl % 2;=0A=09=09zahl =3D (zahl - bit) / 2;=
=0A=09=09Dec[i] =3D bit;=0A=09=09i++;=0A=09    }=0A=0A=09    for(i =3D lang=
e ; i >=3D 0; i--){=0A=09=09printf("%d",Dec[i]);=0A=09=09}=0A=09=0A=09    p=
rintf("\n");=0A=09}=0A    }=0A}=0A=0Abestimme_laenge(int zaal){=0A    //  i=
nt zaal;=0A    int laenge =3D 0;=0A    while (zaal > 0){=0A=09zaal =3D (zaa=
l - (zaal % 2)) / 2;=0A=09laenge =3D laenge + 1;=0A    }=0A    printf("Die =
Bin=E4rzahl und somit das ben=F6tigte Array ist %d Stellen lang.\n", laenge=
);=0A    return laenge;=0A}=0A=0A//////////////////////////////////////////=
///////////////////////=0A=0Awhat the program is about:=0Ayou may input a d=
ecimal number and the program will convert it into a dual number...=0Aafter=
 this it will determine the length of the dual number (bestimme_laenge() )=
=0Athen it should declare an array Dec[] with last position --> lange-1=0A=
=0Athen the positions Dec[i] ... i++ were filled in while while()=0A=0Aafte=
r this it shut put out the positions of the array from Dec[lange] to Dec[0]=
 so that the dual number is in the right order...=0A=0Abut there are more n=
umbers in the output the array shoul be long... o.O thats what i don't unde=
rstand...=0A=0Ai hope you can help me with this prob...=0A=0Agreetz=0ADaRkI=
=0A=0Asorry, my english is bad.. i know... but I hope you'll understand wha=
t i mean ;)=0A=0A=0A-- =0A60% Onlinekosten sparen!=0AJetzt Premium Mitglied=
 bei freenet.de werden und mit dem =0ATarifnavigator guenstiger surfen.=0Ah=
ttp://www.freenet.de/tipp/premium/tarif/index.html