000
06.12.2005, 19:57 Uhr
~dude
Gast
|
Hi, ich versuche derzeit c++ zu erlernen. Da ich schon ein wenig gelernt habe, habe ich versuch das erste mal ein Programm nicht nur abzutippen. Dafür habe ich mir überlegt, dass ich ein Programm schreiben möchte, welches die Nullstelle einer linearen Funktion errechnet.
Der grundgedanke dahinter ist, dass ich die Gleichung y=mx+c gleich Null setzte, und sie dann nach x auflöse. Dabei entsteht x=-c/m. Ich frage also zuerst den User nach seinen Werten für c und m. Diese dividiere ich dann, und gebe das Ergebniss x aus. Soweit zumindest in der Theorie. Mein Programmcode geht so:
C++: |
#include <stdio.h>
short m; //deklariert die Variable für die Steigung der Funktion short c; //deklariert die Variable für die höhe der Schnittstelle zur y-Achse short x; //deklariert die Variable für den x-Wert in dem die Funktion die x-Achse schneidet
void main (void) { printf("Dieses Programm gibt Nullstellen von linearen Funktionen an.\n"); //beschreibt dem User was das Prog macht printf("Bitte geben sie nun die Steigung m ihrer Funktion an:\n"); //m wird festgelegt scanf("%d", &m);
printf("Bitte geben sie c ihrer Funktion an:\n"); //c wird festgelegt scanf("%d", &c);
printf("die Funktion lautet:\n"); //die Angegebene Funktion wird angezeigt printf("%dx+%d\n",m,c); //die Angegebene Funktion wird angezeigt
x=-(c/m); //x wird berechnet printf("x=%d",x); //Ergebniss wird ausgegeben
printf("\nFertig!\n\n\n"); //User wird über die Beendigung des Programms informiert
}
|
Aus irgendeinem Grund gibt mein Programm für m aber immer 0 an, und aus diesem Grund ein logischerweise falsches Ergebniss an.
hat einer eine Ahnung warum dem so ist? Dieser Post wurde am 07.12.2005 um 11:08 Uhr von ao editiert. |