Hilfe C Sprache Programm



  • #include <stdlib.h>
    #include <stdio.h>
    
    int umrechnung ( int dezimal );
    
    int main(void)
    {
        int dezimal;
        
        printf("Hallo bitte geben sie die Zahl ein:");
        if (scanf("%d",&dezimal))
    	{
    		 umrechnung (  dezimal );
        }
        else
        {
        	printf("Falsche Eingabe!");
      	}
    	return 0;
    }
    
    int umrechnung( int dezimal ) 
    {
        int var1 = 0;
        
        int array1[16] = { 1000, 500, 100, 50, 10, 5, 1 };
        char array2[16][3] = { "M", "D", "C", "L", "X", "V", "I" };  
    	   
        for (int i = 0; dezimal > 0; ) 
    	{
            if ( !((dezimal - array1[i]) >-1 )) 
    		{
                i++;
                continue;
            }
            printf("%d\n",array2[i]);  
            dezimal = dezimal-array1[i];
            var1++;
            }
        
        return dezimal;
        }
    

    Ich habe hier so ein Programm geschrieben aber weiß nicht was der Fehler ist leider.
    Das Programm soll einzelne römische Ziffern in Dezimalzahlen umwandeln.


  • Administrator

    @HIitsme sagte in Hilfe C Sprache Programm:

    Ich habe hier so ein Programm geschrieben aber weiß nicht was der Fehler ist leider.

    Fehlermeldung? Kompilerfehler? Oder gibt es nicht das aus, was du erwartest? Was erwartest du und was kommt raus? Wir wissen auch nicht was der Fehler ist, wir haben sogar überhaupt keinen Anhaltspunkt, da du keinen lieferst.



  • @HIitsme sagte in Hilfe C Sprache Programm:

    printf("%d\n",array2[i]);

    Zeile 36 muss eine Warnung vom Compiler geben.

    Wozu ist var1 da? Die wird nur inkrementiert aber nie gelesen.

    Du darfst ruhig aussagekräftige Variablennamen nehmen.



  • @HIitsme sagte in Hilfe C Sprache Programm:

    ... scanf("%d",&dezimal) ...

    Ich habe hier so ein Programm geschrieben aber weiß nicht was der Fehler ist leider.
    Das Programm soll einzelne römische Ziffern in Dezimalzahlen umwandeln.

    Die Problembeschreibung passt nicht zum Programm. Du liest nämlich eine Zahl im %d-Format. Das ist das, was strtol mit Basis 10 akzeptiert. Also Dezimalzahlen.

    Laut Aufgabe willst du aber einzelne römische Ziffern in Dezimalzahlen umwandeln. Dann müsstest du also ein Char einlesen. (oder, meine Vermutung, die Aufgabe ist eine andere)


Anmelden zum Antworten