Simple Frage an Euch
-
Guten Tag.
Ich bekomm dieses programm (s.u.) nicht zum laufen. Ich schaffe es, eine Seite bzw. eine zahl einzugeben, aber dann "rennt" mir das Programm davon und bricht ab? Was mache ich falsch?
#include<stdio.h>
#include<math.h>
#include<stdlib.h>main()
{
float a,b,c,s,rad,F;
printf("Dreiecksflaechenberechnung...drei zahlen bitte...\n" );
scanf("f%",&a);
printf("noch eine!\n");
scanf("f%",&b);
printf("\nhm, noch eine!");
scanf("f%",&c);
s=0.5*(a+b+c);
rad=s*(s-a)(s-b)(s-c);
F=sqrt(rad);
printf("\nder flaecheinhalt der drei seiten ist=%8.2f",F);}
Wäre um Hilfe sehr dankbar
Gruss Stefan
-
Gar nichts du musst halt das Programm schon in der Konsole starten oder halt am end e sowas wie zb int a; cin >> a;
-
Ps: Main muss nen Wert zurückgeben auch Variablennamen scheiße
-
Erstens: Das ist C code. (Deswegen ins C Forum).
Zweitens: Es heißt int main() (Nach ANSI-Standard).Zu deinem Problem: Soweit ich weiß steht nach der Eingabe noch das 'Enter'-Zeichen im Puffer, weswegen der Rest der Eingaben nicht erwartungsgemäß entgegengenommen werden kann.
Weiß nicht genau wie du den Puffer unter C leerst; Wird dir bestimmt noch jmd. mitteilen
Aber andere Frage: Wieso liest du nicht einfach alle Eingaben auf Einmal ein?
scanf("%f%f%f", &a, &b, &c);
Caipi
-
Danke erstmal wegen der schnellen Antwort.
Leider versteh ich nur Bahnhof, da ich übelst der Anfänger bin. Das ist ne Beispielaufgabe die ich quasi nachvolzogen bzw. abgeschrieben habe.
mit : int a; cin >> a; komm ich nicht weit.
eigentlich sollte das doch funktionieren, doch nach der zweiten eingabeaufforderung kommt nüsch mehr.
-
wie meinste mit abbrechen?
sollst vielleicht 1x oder 2x cin.get(); ganz am schlus rein
-
[sarkasmus]
xBlackKnightx schrieb:
sollst vielleicht 1x oder 2x cin.get(); ganz am schlus rein
Schön wenn man auf solch fundiertes Fachwissen zurückgreifen kann.
Was ist denn das da in deinem Code? Ja, jemand aus so 'nem C++ Forum hat mir gesagt, ich soll da ein- bis zweimal cin.get reinschreiben. Also hab ich's sicherheitshalber dreimal reingeschrieben.
[/sarkasmus]
-
LOL
der war gutAber zurück zum Thema, ich finds langsam erschreckend wie viele Leute den unterschied zwischen C und C++ scheinbar nciht kennen....naja hat bei mir auch sehr sehr lange gedauert, daher kann cih nur empfehlen, kauft euch nen Vernünftiges Buch, anders wird man es nicht lernen.
Ja, als Schüler ist das schwer, kein Geld und so....aber einmal 20€ fürn gebrauchten Stroustrup ausgegeben, und ihr habt die nächsten 5 Jahre was zu tun!Dann schreibste dein Programm so, und es geht ohne Probleme, und sit auch C++!
#include<iostream> int main(int argc,char **argv) { float a,b,c,s,rad,F; std::cout << "Dreiecksflaechenberechnung...drei zahlen bitte...\n"; std::cin >> a; //Wobei das mit getline schöner wäre...aber so gehts au std::cout << "noch eine!\n"; std::cin >> b; std::cout << "\nhm, noch eine!"; std::cin >> c; s=0.5*(a+b+c); rad=s*(s-a)*(s-b)*(s-c); F=sqrt(rad); std::cout << "\nder flaecheinhalt der drei seiten ist =" << F; }
-
DocFoster schrieb:
scanf("f%",&a);
schau dir nochmal die dokumentation von scanf an.