Advertisement
Guest User

Untitled

a guest
Nov 26th, 2012
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.32 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. #define ONLY_ZERO_OR_ONE "Nur Null oder Eins eingeben\n"
  6.  
  7. char lowerCaseToUpperCase(char somechar)
  8. {
  9.   if (somechar == 'n' ||
  10.       somechar == 'j')
  11.   {
  12.     somechar = somechar - 32;
  13.   }
  14.   return(somechar);
  15. }
  16.  
  17. char checkDecision(char decision)
  18. {
  19.   int check = 0;
  20.  
  21.   while(check < 1)
  22.   {
  23.     if (decision != 'J' && decision != 'N')
  24.     {
  25.       printf("\a");
  26.       printf("Nur n oder j eingeben!!\n");
  27.       __fpurge(stdin);
  28.       scanf ("%c", &decision);
  29.       decision = lowerCaseToUpperCase(decision);
  30.     }
  31.     if (decision == 'J' || decision == 'N')
  32.     {
  33.       check = 1;
  34.       return (decision);
  35.     }
  36.   }
  37.   return(0);
  38. }
  39.  
  40. char getDecision(char decision)
  41. {
  42.   printf("Wollen Sie noch eine Berechnung durchführen?\n");
  43.   printf("j für Ja eingeben oder n für Nein eingeben\n");
  44.   __fpurge(stdin);
  45.   scanf ("%c", &decision);
  46.   decision = lowerCaseToUpperCase(decision);
  47.   return(decision);
  48. }
  49.  
  50. void getBinary(int bin[5])
  51. {
  52.   int bin_counter = 0;
  53.  
  54.   while (bin_counter < 4)
  55.   {
  56.     if (bin_counter == 0)
  57.     {
  58.       printf("4 Binaer-Ziffern eingeben\n");
  59.     }
  60.    
  61.     __fpurge(stdin);
  62.     scanf ("%i", &bin[bin_counter]);
  63.    
  64.     if ( (bin[bin_counter] == 0) ||
  65.          (bin[bin_counter] == 1))
  66.     {
  67.       bin_counter = bin_counter + 1;
  68.     }
  69.    
  70.     if ( (bin[bin_counter] > 1) ||
  71.          (bin[bin_counter] < 0) )
  72.     {
  73.       printf("\a");
  74.       printf ("%s", ONLY_ZERO_OR_ONE);
  75.     }
  76.   }
  77. }
  78.  
  79. int binaryToDecimal(int decimal, int bin[5])
  80. {
  81.   int ok_counter = 0;
  82.   int pow_counter = 3;
  83.  
  84.   for (ok_counter = 0; ok_counter < 4;)
  85.   {
  86.     if (bin[ok_counter] == 1)
  87.     {
  88.       decimal = decimal + pow(2, pow_counter);
  89.       ok_counter = ok_counter + 1;
  90.       pow_counter = pow_counter - 1;
  91.     }
  92.    
  93.     if (bin[ok_counter] == 0)
  94.     {
  95.       ok_counter = ok_counter + 1;
  96.       pow_counter = pow_counter - 1;
  97.     }
  98.   }
  99.   return(decimal);
  100. }
  101.  
  102. int main()
  103. {
  104.   char decision = 'Y';
  105.   int decimal = 0;
  106.   int bin[5] = {};
  107.  
  108.   getBinary(bin);
  109.   decimal = binaryToDecimal(decimal, bin);
  110.   printf("Dezimal Zahl: %i\n", decimal);
  111.   decision = getDecision(decision);
  112.   decision = checkDecision(decision);
  113.  
  114.   if (decision == 'N')
  115.   {
  116.     return(0);
  117.   }
  118.   else
  119.   {
  120.     main();
  121.   }
  122.  
  123.   return(0);
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement