Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 28th, 2012  |  syntax: None  |  size: 1.37 KB  |  hits: 11  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <stdio.h>
  2.  
  3. #define MAX 16
  4.  
  5. int check_input (char current_char);
  6. void ch_fget  ( char array );
  7.  
  8. /*
  9.  *
  10.  */
  11. int main() {
  12.  
  13.   char input_ch[MAX];
  14.   int  input_int[MAX];
  15.   int  length = 0, ergebnis = 0 , check = 0, count;
  16.  
  17.   /*  Eingabe Funktion */
  18.   for(count = 0; count < MAX; count++) {
  19.    input_ch[count] = getc(stdin);
  20.  
  21.    check = check_input(input_ch[count]);
  22.    
  23.    if(check == -1) {
  24.      return 1;
  25.    } else if (check == 0) {
  26.      length = count;
  27.      break;
  28.    } else {
  29.      input_int[count] = check;
  30.      length = count;
  31.    }
  32.   }
  33.  
  34.   /* Summe berechnen */
  35.   for(count = 0; count < length; count++ ) {
  36.     if( input_int[count] < input_int[count+1]) {
  37.       ergebnis = ergebnis - input_int[count];
  38.     } else {
  39.       ergebnis = ergebnis + input_int[count];
  40.     }
  41.   }
  42.  
  43.   /* Ausgabe */
  44.   printf("%d\n", ergebnis);
  45.  
  46.   return 0;
  47. }
  48.  
  49.  
  50. /* Prüft Buchstabe ob korrekte eingabe (klein->Groß)*/
  51. int check_input (char current_char) {
  52.  
  53.   char intern_check = current_char;
  54.  
  55.   if( 96 < intern_check) {
  56.     intern_check = intern_check - 32;
  57.   }
  58.  
  59.   switch (intern_check) {
  60.     case 'I' : return 1;
  61.     case 'V' : return 5;
  62.     case 'X' : return 10;
  63.     case 'L' : return 50;
  64.     case 'C' : return 100;
  65.     case 'D' : return 500;
  66.     case 'M' : return 1000;
  67.     case '\n': return 0;
  68.     case '\0': return 0;
  69.     default : return -1;
  70.   }
  71. }