title image


Smiley Re: Was stimmt an diesem Programm nicht?:-(
Hallo,



da ist einiges anzumerken, wobei ich das Problem mit dem "Bekanntsein" der Variable neu nicht mehr ansprechen muß, weil dr.s2 das schon richtig erklärt hat (Variablennamen sind nur innerhalb eines Blockes bekannt):



main hat bei dir keinen Rückgabewert, und keine Parameterliste, das ist falsch, und sollte korrigiert werden:



int main(void)

{

}





Nicht die Format-Kennzeichen für scanf und printf gleichsetzen! Für das Einlesen wird zwar "%lf" für double-Werte benötigt, d.h. aber noch lange nicht, daß es auch für das Ausgeben stimmt. Dort muß es nur "%f" heißen. Ist zwar ungewöhnlich, aber so ist es nach Spezifikation richtig.



fflush(stdin) funktioniert in diesem Falle (für ein Windows-System), aber nicht immer, bei Interesse siehe dazu auch:



http://spotlight.de/zforen/ccc/m/ccc-1113932366-36.html



Die Multiplikation in den case-Marken ist auch unnötig, warum willst du den Compiler 1 * x ausrechnen lassen, wenn das doch sowieso immer x ist? Es verwirrt eigentlich nur...



Und um noch auf dein Ablaufproblem einzugehen:



Es müsste noch rein als printf, daß man für sin und exp einen beliebigen Wert für x eingibt und es nur auf den eingegebenen y Wert ankommt...



Du solltest die Programmlogik überdenken, erst nach der Beantwortung der Frage nach der Rechenart solltest du die Werte für die Rechnung anfordern, dann hast du das Problem mit dem zuviel eingegebenen Wert nicht, denn es ist damit schon bekannt, wieviele Werte für die "Rechenart" benötigt werden.



Und noch ein Hinweis:



sin erwartet die Werte im Bogenmaß, nicht im Gradmaß, wenn das Programm also vom Benutzer Gradwerte erwartet, mußt du noch entsprechend Grad- in Bogenmaß umrechnen, bevor du den Wert der Sinus-Funktion übergibst.



War vielleicht jetzt ein bischen viel für einen Anfänger, aber probiere einfach mal, meine Anmerkungen umzusetzen (das fflush(stdin) kannst du erst einmal so lassen, man muß nur wissen, daß es im Allgemeinen nicht ok ist, betrachte es nur als zusätzliche Anmerkung, die anderen Dinge solltest du zuerst korrigieren).







geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: