Programm funktioniert nicht!
-
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; //Ortsfaktorg = 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 ; erwartetKö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).