Programm funktioniert nicht!


  • Mod

    Und benutz für C einen C-Compiler. Wenn der dein #include<iostream> schluckt, ist es ein C++-Compiler. Du machst aber C (bis auf eben diese eine Zeile, die in deinem Programm genau gar nichts macht).



  • Danke für eure Hilfe. Ich hätte dann aber schon direkt das nächste Problem.

    Hier möchte ich die Wurfhöhe berechnen. Allerdings zeigt es mir beim einzelnen debuggen falsche Werte für v und das bogenmass an. Folglich funktioniert gar nichts!

    #define _CRT_SECURE_NO_DEPRECATE

    #include<stdlib.h>
    #include<stdio.h>
    #include<math.h>

    int main()
    {
    double v=0; //Startgeschwindigkeit
    double bogenmass=0;
    double gradmass=0; //Wurfwinkel in grad
    double winkel=0;
    double s=0; //Wurfhöhe
    double h=0; //Flughöhe
    double g=0; //Ortsfaktor

    g = 9.81;

    printf("Bitte geben Sie die Startgeschwindigkeit an:");
    scanf("%fl", &v);
    printf("Bitte geben Sie den Wurfwinkel an:");
    scanf("%fl", &gradmass);

    bogenmass = (gradmass / 180 * 3.1415926535);

    h = ((v*sin(bogenmass))*(v*sin(bogenmass))) / 2*g;

    printf("Die Wurfhöhe beträgt: %fl", h);

    system("pause");
    return 0;
    }



  • Schau nochmal an, wie man printf benutzt:

    scanf("%fl", &v);
    

    Und bitte stell deinen Compiler richtig ein, dass er Warnungen anzeigt.



  • das was du zitiert hast ist ein scanf, und dieses habe ich nach meinem Wissen richtig benutzt.

    Lasse mich aber gern korrigieren.



  • Der Formatstring für double ist "%lf" , nicht "%fl" .



  • lf für "long float", nicht fl für "float". "float" wäre ein einzelnes f.



  • Das darf doch nicht wahr sein 😡
    nur ein Zahlendreher und es funktioniert nicht mehr.
    Ich habe visual studio 2013 express, wie kann ich dort einstellen, dass solche Fehler erkannt werden?



  • Ist zwar ein Buchstabendreher 😃

    Einstellen kannst du das bei den (C/C++)-Compileroptionen in den Projekteinstellungen.
    Da kannst du dann auch gleich auf C-Compiler umstellen.

    Und es sind Warnungen. Der Compiler läuft weiter und erzeugt auch ein Programm.



  • Dulfried schrieb:

    nur ein Zahlendreher und es funktioniert nicht mehr.

    lol
    Richtig erkannt. C ist nichts für Anfänger.



  • und noch eine Frage:

    ich habe auf meinem Aufgabenblatt eine Funktion, die ich benutzen soll. Diese habe ich nun einfach abgetippt und gleich wurde mir einiges rot angestrichen. Hier die jeweiligen Kommentare des Editors dazu:

    w = (t + [2.6*m - 0.2] + j + [j / 4] + [h / 4] + 5 * h) mod7;

    2.6 - es wurde ein bezeichner erwartet
    + - es wurde { zur Einführung eines Lamba Textes erwartet
    / - es wurde ein ] erwartet
    mod7 - es wurde ein ; erwartet

    Könnt ihr mir bitte helfen wie ich diese Funktion richtig verwende.

    Ps.: Für die Gauß-Klammern habe ich normale eckige Klammern benutzt



  • Dulfried schrieb:

    Ps.: Für die Gauß-Klammern habe ich normale eckige Klammern benutzt

    Und du hoffst jetzt, dass man diese Funktion in C zufällig so schreibt, wie du es dir gerade überlegt hast? 😕 Schau dir die Funktion floor() aus math.h an.

    edit: Was nicht heißt, dass du floor() hier brauchst. Eine normale Ganzzahldivision reicht auch.



  • Setze dich mit den in C existierenden arithmetischen Operatoren auseinander, wenn es für deine Aufgabe keinen passenden Operator gibt ('%' steht z.B. für modulo) dann musst du zwangsläufig Funktionen benutzen (aus der Standardbibliothek oder Selbstbau).


Anmelden zum Antworten