Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

Kleines Problem mit C Code
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Informatik-Forum -> Kleines Problem mit C Code
 
Autor Nachricht
InfoInfo
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 08.06.2008
Beiträge: 12

BeitragVerfasst am: 11 Jun 2008 - 17:00:07    Titel: Kleines Problem mit C Code

Hi, hoffe man darf auch hier Fragen stellen.

Ich lerne zur Zeit C und bin damit noch relativ am Anfang, daher hält sich der Code auch recht übersichtlich.

Mein problem ist, dass meine Ergebnisse vollkommen falsch sind, die zahlen sind viel zu groß, dabei ist alles richtig deklariert, die Formel stimmt und der Compiler meckert auch nicht.


Aufgabe:

Ein Mann geht mit seinem Hund die Strecke s spatzieren.
Der Mann (v1) ist langsamer als der Hund (v2).

Der Hund läuft voraus bis er bei s angekommen ist und dann wieder zurück zum Herrn. Das ganze macht er n mal.Ich soll jetzt ein Programm schreiben das mir die Treffpunkte als a ausgibt (in metern).


Das ganze sieht so aus:
Zitat:

Strecke: 500

Geschwindigkeit Mann: 7
Geschwindigkeit Hund: 28
Wieviele Treffpunkte?: 10

Treffpunkt1: 200,00
Treffpunkt2: 320,00
Treffpunkt3: 392,00

...

Treffpunkt10: 496,98


Ich hab unmögliche Ergebnisse herausbekommen, im Millionenbereich, die exakt gleiche Lösung steht aber so auch im Lösungsbuch.


Im Buch stand der Hinweis:
Wenn der Herr die Strecke a bis zum 1. Treffpunkt zurücklegt, so schafft der Hund ind er Zeit die Strecke 2s-a. Die beiden Strecken verhalten sich zueinander wie v1/v2

-> a/2s-a = v1/v2.

Auch die Ableitung:

a = 2s/1+v2/v1

konnte ich nachvollziehen.

in C:
a=a+(2*s/(1+(v2/v1)));


Aber dennoch...

Ich Poste mal den Code, wäre toll wenn mir jemand helfen könnte, ich kann keinen Fehler finden.

Zitat:

int main()
{
float s,v1,v2,anz;
float a;
float strecke;
int i,hundschneller;

v2=0;

printf("Der Mann mit dem Hund\n ");


printf("\n Gesamtstrecke: ");
scanf("%f",&s);
printf("Geschwi. des Herrchens: ");
scanf("%f",&v1);

//Stellt sicher dass der Hund schneller ist als der Mann
for(hundschneller=0;hundschneller<1;)
{
printf("\nGeschw. des Hundes: ");
scanf("%f",&v2);
if(v2<=v1)
printf("\n Der Hund muss schneller laufen als der Mann!\n");
else
hundschneller=1;
}

printf("\n Anzahl der zu berechnenden Treffpunkte: ");
scanf("%f",&anz);
printf("\n");


for(a=0,i=1;i<=anz;i=i+1)
{
s=strecke-a;
a=a+(2*s/(1+(v2/v1)));
printf("%3d. Treffpunkt: %5.2f\n", i, a);


}
printf("\n");



Edit: Hier meine Ergebnisse:


mfg
Jockelx
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 24.06.2005
Beiträge: 3596

BeitragVerfasst am: 11 Jun 2008 - 17:09:19    Titel:

Hallo,

"strecke" wird nirgends gesetzt.
InfoInfo
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 08.06.2008
Beiträge: 12

BeitragVerfasst am: 11 Jun 2008 - 17:12:40    Titel:

Das wars! Danke!

Selbst im Buch wurde Strecke nicht gesetzt. Daher hab ich den Fehler gemacht und bin davon ausgegangen, dass s=strecke-a beim ersten mal s auf strecke-0 überträgt.Ear aber wohl verkehrt rum Smile
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Informatik-Forum -> Kleines Problem mit C Code
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum