2017-02-10 9 views
-6

Ich habe die Hausaufgaben der typischen Strecke in meiner C++ - Klasse gemacht. Bei diesem Problem hat der Lehrer jedoch gesagt, dass ich die "for" -Schleife nicht verwenden kann, und ich darf nur die "while-Schleife" verwenden, so dass ich mit diesem Code festhalte.Wie behebt man dieses C++ Programm?

Das Problem ist, dass die Stunden die zurückgelegte Strecke einzeln anzeigen sollten, aber es zeigt die Gesamtmenge der zurückgelegten Strecke in jeder Stunde an.

#include <iostream> 
using namespace std; 

int main() 
{ 
    double distance, 
      speed, 
      time, 
      counter=1; 


    cout << "This program will display the total distance travel each hour.\n\n"; 

    cout << " What is the speed of the vehicle in mph? "; 
    cin >> speed; 

    while(speed < 0) 
    { 
     cout << " Please enter a positive number for the speed: "; 
     cin >> speed; 
    } 

    cout << " How many hours has it traveled? "; 
    cin >> time; 

    while(time < 1) 
    { 
     cout << " Please enter a number greater than 1 for the hours: "; 
     cin >> time; 
    } 


    cout << endl; 
    cout << " Hour" << "\t\t" << " Distance Traveled" << endl; 
    cout << " ------------------------------------" << endl; 

    while(counter <= time) 
    { 
     distance = speed * time; 
     cout << counter << "\t\t" << distance << endl; 
     counter++; 

    } 

    return 0; 
} 
+2

Eine While-Schleife und eine For-Schleife sind im Grunde das Gleiche. Weißt du wie man es mit einer for-Schleife macht? – NathanOliver

+0

Ja, habe ich mit der for-Schleife gemacht, aber wie gesagt, mein Lehrer fragt mich nach der while-Schleife. –

+0

Vielleicht ist es nur ich, aber ich kann nicht herausfinden, was das bedeutet: "* Das Problem ist, dass die Stunden die zurückgelegte Strecke einzeln anzeigen sollen, aber es zeigt die Gesamtmenge der in jeder Stunde zurückgelegten Strecke an. *" Was ist der Unterschied zwischen der Auflistung der Stunden einzeln und Auflistung der Betrag in jeder Stunde gereist? –

Antwort

-1

Bitte versuchen Sie es, wenn es wirklich so einfach ist wie Entfernung = Geschwindigkeit * Zeit. Es sieht so aus, als hättest du die Variablen counter und time durcheinander gebracht. Verwenden Sie einfach counter bei jedem Inkrement und das ist der lokale Wert von time.

#include <iostream> 
using namespace std; 

int main() 
{ 
    double distance, 
      speed, 
      time, 
      counter=1; 


    cout << "This program will display the total distance travel each hour.\n\n"; 

    cout << " What is the speed of the vehicle in mph? "; 
    cin >> speed; 

    while(speed < 0) 
    { 
     cout << " Please enter a positive number for the speed: "; 
     cin >> speed; 
    } 

    cout << " How many hours has it traveled? "; 
    cin >> time; 

    while(time < 1) 
    { 
     cout << " Please enter a number greater than 1 for the hours: "; 
     cin >> time; 
    } 


    cout << endl; 
    cout << " Hour" << "\t\t" << " Distance Traveled" << endl; 
    cout << " ------------------------------------" << endl; 

    while(counter <= time) 
    { 
     distance = speed * counter; 
     cout << counter << "\t\t" << distance << endl; 
     counter++; 

    } 

    return 0; 
} 

-Test

This program will display the total distance travel each hour. 

What is the speed of the vehicle in mph? 50 
How many hours has it traveled? 5 

Hour  Distance Traveled 
------------------------------------ 
1  50 
2  100 
3  150 
4  200 
5  250 
+0

Danke, dass du mir geholfen hast, es tut mir leid dich zu stören. –

+0

@HugoFederico Viel Glück ... Ich hoffe, der Code funktioniert für Sie. –

1

Angenommen, Sie Abstand in jeder Stunde gereist berechnen möchten bzw. (von dem, was ich von Code verstehen konnte); Denn jedes Mal, wenn Sie in der while-Schleife für counter <= time iterieren, berechnen Sie die Entfernung für diesen Zeitraum. Sagen Sie für Zeit = 1 Stunde, Ihr Code berechnet die zurückgelegte Strecke in 1 Stunde und zeigt sie an. Wenn die Zeit 2 Stunden beträgt, berechnet sie die in 1 Stunde bzw. 2 Stunden zurückgelegte Entfernung (Gesamtdistanz 2 Stunden).

Ex:

time = 2, speed = 60 kmph 

drucken
1 60 
2 120 

wo 120 Gesamtdistanz in 2 Stunden und nicht von der 1. Stunde 2. Stunde Entfernung.

Wenn Sie die zurückgelegte Strecke in jeder Stunde berechnen müssen, sollte Ihre Zeit konstant sein und 1 Stunde betragen (vorausgesetzt, die Geschwindigkeit bleibt über die Zeit konstant). Damit in while-Schleife, Gebrauch zu verwenden:

distance = (speed * counter) - (speed *(counter - 1)) 

Entfernung in n-ten Stunde ist in (n-1) Stunden gereist Gesamtdistanz in n minus Stunden zurückgelegte Strecke.

Verwandte Themen