You are not logged in.

  • Login

1

Thursday, January 1st 2009, 12:03pm

C Programm zur Umrechnung Dezi -> Dual

Hallo Leute,

vorweg wollte ich an dieser Stelle allen ein Frohes und Gesundes neues Jahr 2009 wünschen.

problem gelöst :D

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
 
 
int main(int argc, char *argv[])
{
  int iDezimal, i;
  int iRest;
  int iBasis=2;
  char szDual[9];
  char cAbfrage = 'j';
 
 
 do{ //start do-while (Wiederholen?)
 
  /* einlesen der Dezimalzahl */
  do 
  {
  printf("Bitte geben Sie ihre Dezimalzahl ein (zwischen 0 und 255):\n");
  scanf("%i",&iDezimal);
  fflush(stdin);
  puts("");
   if ((iDezimal < 0) || (iDezimal > 255)) 
   {
     printf("falsche Eingabe\n");
   }
  }  while  ((iDezimal < 0) || (iDezimal > 255));
 
   /* Umrechnung */
   for (i = 0;i < 8;i++)
   {
    printf("%i : %i ",iDezimal, iBasis);
    iRest = iDezimal;
    iDezimal = iDezimal/iBasis;
    iRest = iRest - (iDezimal * iBasis);
    szDual[7-i] = (iRest) ? '1':'0';
    szDual[8] = '\0';
    printf("= %i Rest %i\n", iDezimal, iRest);
   } //end for
 
   printf("%s",szDual);
 
   puts("");
 
   printf("Wiederholen (J)a/(N)ein ?");
   scanf("%c",&cAbfrage);
   fflush(stdin);
   }while((cAbfrage == 'j')||(cAbfrage == 'J')||(cAbfrage == '\n')); //end do-while Schleife
 
   while((cAbfrage != 'j')&&(cAbfrage != 'J')&&(cAbfrage != '\n')){
   return 0;
}//end main
}//end while welche das Programm beendet

This post has been edited 3 times, last edit by "suchti" (Jan 2nd 2009, 3:07pm)


2

Thursday, January 1st 2009, 2:41pm

Wenn das der Quellcode ist den Compiler bekommt, müsste min. ein Fehlermeldung
kommen - und keine *.EXE.
Schreib den Quellcode mal sauber formatiert - also nur ein System bei den
{ und } verwenden - mir ist das am übersichtlichsten, wenn die Schliessende
genau unter der Öffnenden steht.

MfG bcc-fan

3

Thursday, January 1st 2009, 3:22pm

Hi,

habe mit ein Freund das anders gelöst, jedoch soll ich das Ergebnis nicht als Zahl sondern String ausgeben, vielleicht kannst mir da etwas helfen.

hier mal der neue Code. Hoffe das passt so von der Formatierung.

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
 
 
int main(int argc, char *argv[])
{
  int iDezimal, i, j;
  int iErgebnis, iRest;
  int iBasis=2;
  int szDual[8];
 
 
  /* einlesen der Dezimalzahl */
  do 
  {
  printf("Bitte geben Sie ihre Dezimalzahl ein (zwischen 0 und 255):\n");
  scanf("%i",&iDezimal);
  fflush(stdin);
  puts("");
   if ((iDezimal < 0) || (iDezimal > 255)) 
   {
     printf("falsche Eingabe\n");
   }
  }  while  ((iDezimal < 0) || (iDezimal > 255));
 
   /* Umrechnung */
   for (i = 0;i < 8;i++)
   {
    printf("%i : %i ",iDezimal, iBasis);
    iRest = iDezimal;
    iDezimal = iDezimal/iBasis;
    iRest = iRest - (iDezimal * iBasis);
    szDual[i] =  iRest;
    iErgebnis = iDezimal+iRest;
    printf("= %i Rest %i\n", iErgebnis, iRest);
   } //end for
   /* Binärzahl umdrehen und  rückwerts ausgeben */
   i = 7;
   for (i = 7; i>=0;i--)
   {
       printf("%d", szDual[i]);
   }
   printf("\n");
  system("PAUSE");
  return 0;
}//end main

4

Friday, January 2nd 2009, 1:15pm

du machst das VIEL zu kompliziert...
ich hab das ganze mal in kleiner gemacht:

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
void dec2bin(const unsigned char zahl)
{
	unsigned int bin[8];
	int i = 0;
	for(i = 7; i >= 0; i--)
	{
		bin[i] = (zahl >> i) & 1;
		printf("%i ", bin[i]);
	}
	printf("\n");
}
 
int main(void)
{
	dec2bin(123);
	return(0);
}


hoffe es hilft ^^
code lässt sich auch noch ausbauen wenns sein muss

5

Friday, January 2nd 2009, 1:27pm

Hehe ja sicherlich könnte man :D und sicherlich hab ich viel zu komplex...aber ich darf ,dank der professorin, nichts benutzen was wir noch nicht in den vorlesungen hatten :D dadrunter auch funktionen..

Und die gute Dame will ein char array xD das gerade nur das problem was ich lösen muss, sonst funktioniert es ja :D und das is ja das wichtigste :D

6

Friday, January 2nd 2009, 1:58pm

dann tu drn inhalt der funktion doch einfach in main rein

7

Friday, January 2nd 2009, 3:07pm

So Sache gelöst, ich editier oben das fertige programm rein, mag vielleicht zu aufwendig sein oder dergleichen, aber genau vom Ergebnis wollte es die Professorin...^^

Social bookmarks