gleich die nächste Frage - Fehler



  • So jetzt kommt mein Bomben Profi-Programm.
    Es soll mir links die °F von 10 bis 100 anzeigen und rechts °Celsius ..
    allerdings kommt rechts nur ne Reihe mit Nullen.
    Woran liegts?

    #include <stdio.h>
    #include <math.h>
    int main()
    {
    int Fa = 0;
    int Ce;
    while(Fa <= 90)
    {
    Fa += 10;
    Ce = ( 5/9 )*(Fa - 32);
    printf("%i %i\n", Fa, Ce);
    }
    }



  • 5/9 = 0.
    5.0/9 = 5/9.0 = 5.0/9.0 = 0.5555555.
    Für Fließkommazahlen als Variablen nimm float oder double.



  • das ging schnell 🙂
    Danke!



  • verwendet bitte die CPP Tags



  • Falls du keine all zu genauen Werte brauchst, kannst du solche Berechnungen oft durch geschickte Anordnung (erst Multiplikationen und Additionen, zum Schluss, bzw. auf moeglichst grosse Werte dann Division) auch mit schnellerer Integer-Arithmetik durchfuehren.

    zB. kannst du deine Formel so umstellen:

    Ce = (5*(Fa - 32))/9;
    

    dann sollte es auch mit ints klappen.



  • Folgendes Programm soll angeblich "den Vektor puffer benutzen, um eine Zeile einzulesen und dann in umgekehrter Reihenfolge wieder auszugeben".
    Bei mir passiert allerdings nix.
    Es kommen so viele leere Zeilen, wie ich Zeichen eingebe, danach ist Programmende.
    Allerdings ist das aus nem Beispielblatt.. aber irgendwo muss da ja ein Fehler sein?? Oder liegt der Fehler in der Beschreibung? (Siehe Zitat oben)

    #include <stdio.h>
    #define MAXL 100

    int main(){
    int c, i;
    char puffer[MAXL];
    printf("Eine Zeile eingeben:");
    for(i=0;i<MAXL && (c=getchar()) != '\n';++i)
    {
    puffer[i] = c;
    putchar('\n');
    while (--i >= 0)
    {putchar(puffer[i]);}
    }
    }



  • unverändert aber mit cpp-tags:

    #include <stdio.h>
    #define MAXL 100
    
    int main(){
        int c, i;
        char puffer[MAXL];
        printf("Eine Zeile eingeben:");
        for(i=0;i<MAXL && (c=getchar()) != '\n';++i)
               {
               puffer[i] = c;
               putchar('\n');
               while (--i >= 0)
                  {putchar(puffer[i]);}
               }
    }
    


  • wie wär's mit einer anderen Klammerung ...

    #include <stdio.h>
    #define MAXL 100
    
    int main(){
        int c, i;
        char puffer[MAXL];
        printf("Eine Zeile eingeben:");
        for(i=0;i<MAXL && (c=getchar()) != '\n';++i)
             puffer[i] = c;
        putchar('\n');
        while (--i >= 0)
            putchar(puffer[i]);
        }
    

Anmelden zum Antworten