M
m0erk
Grünschnabel
#include <stdio.h>
int dezbin(int, int B[9]);
int lese_f(void);
main()
{
while(1)
{
int d,B[8],i;
B[0]=0;
printf("\nProgramm zum umwandeln von dezimalen in binaere Zahlen.\n");
do{
printf("Bitte posivite Dezimalzahl eingeben. Max 1E30!\n-> ");
d = lese_f();
}while( (d <= 0) || (d >= 640000 ) ) ;
dezbin(d,B);
}
}
int dezbin( int d , int B[9])
{
int h=0,h2=0,n=9,i;
for(i=0;i<n;i++)
{
if( d%2 == 1 )
{
B=1;
}
else
{
B=0;
}
d=d/2;
}
for(i=1;i<n
{
h = B;
h2 = B[n-i];
B = h2;
B[n-i] = h;
i++;
// printf(" i= %d / h= %d / b(i) = %d / b(n-i ) = %d\n",i,h,B,B[n-i]);
}
printf("\nDie entsprechende Dualzahl ist: ");
getchar();
for(i=0;i<9;i++)
{
printf("%d",B);
}
getchar();
}
int lese_f( void )
{
int zahl;
char zeile[80];
gets( zeile );
sscanf( zeile, "%d", & zahl );
return zahl;
}
kann mir jemand sagen warum er das array nicht dreht? er stellt die dezimalzahl immer falsch herum dar.. versuchts z.b. mit 255 müsste 01111111 sein... aber scheinbar dreht er das array nicht oder falsch oder keine ahnung.. wenn ich die schleife ganz raus lasse, dann steht die selbe zahl also schätz ich da passt was beim drehen nicht...
wäre nett wenn jemand nen tipp hat.. thx m0erk