Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Оператор повторения while


Автор: danilkramatorsk 4.1.2013, 17:29
Водителям небезразличен пробег их автомобилей. Один водитель записал  
данные о нескольких заправках своей машины, записывая пройденные мили и  
число залитых в бак галлонов бензина. Разработайте программу на C++, которая, 
используя оператор while, вводила бы пробег в милях и объем бензина в каждой 
заправке. Программа должна вычислять и выводить на экран число миль на  
галлон для каждой заправки, а также общее значение миль на галлон по всем  
введенным к данному моменту заправкам. 
Введите пройденный путь (-1, если ввод закончен): 287 
Введите расход бензина: 13 
Миль/галлон для этой заправки: 22.076923 
Суммарное значение миль/галлон: 22.076923 
Введите пройденный путь (-1, если ввод закончен): 200 
Введите расход бензина: 10 
Миль/галлон для этой заправки: 20.000000 
Суммарное значение миль/галлон: 21.173913 
Введите пройденный путь (-1, если ввод закончен): 120 
Введите расход бензина: 5 
Миль/галлон для этой заправки: 24.000000 
Суммарное значение миль/галлон: 21.678571 
Введите расход бензина (-1, если ввод закончен): -1 



Помогите записать правильно код!

Код

void determineClassAverage() 
 { 
      int proydenniyP;
      int rasxod;
      int obshiyP;
      double mili;
      int chisloZapravok;
      int obshiyR;
                         proydenniyP=0;
                         rasxod=0;
                    
   
      
      while ( proydenniyP != -1,rasxod != -1 ) 
{
     
      
            cout<<"Vvedite proydenniy pyt or enter -1 to quit: ";
            cin >> proydenniyP;
      
    
      }
            
            
            if ( chisloZapravok !=0 )
            {
                
            mili=proydenniyP/rasxod;
            
            cout<<"\nProydenniy pyt:"<<proydenniyP<<endl;
            cout<<"\nRasxod benzina na mili: "<<mili<<endl;
            
                 }
                 
                 else
                 cout << "No grades were entered!!!!" << endl; 
                 }
};

Автор: wallstreet 4.1.2013, 18:39
Незнаю правильно ли я понял задачу, но решал бы ее так:
Код

#include <iostream>
using namespace std;

float GM(int iConsumption, int iZalil)
{
    float GalMil;
    GalMil = (double)iZalil / iConsumption; // another example: GalMil = iZalil;
                                            //                  GalMil /= iConsumption;

    return GalMil;
}

int main()
{
    int iFuelConsump, iGallons, flag=1;
    float iMilesOnFuel;
    char buf[100];
    while(flag)
    {
        cout << "Enter fuel consumption / mile: "; 
        cin >> iFuelConsump;
        cout << "Enter how much fuel do you have: ";
        cin >> iGallons;
        iMilesOnFuel = GM(iFuelConsump, iGallons);
        sprintf(buf, "%.2lf", iMilesOnFuel);  
        cout << "You can drive whithout charging for a: " << buf << " miles" << endl;
        cout << "===============================================\n";
        cout << "\n";
        cout << "If you want to exit, type '0' (zero): ";
        cin >> flag; // it's just like System Pouse :)))
        cout << "\n";
    }
    return 0;
}

Автор: danilkramatorsk 4.1.2013, 19:23
Цитата(wallstreet @  4.1.2013,  18:39 Найти цитируемый пост)
Незнаю правильно ли я понял задачу, но решал бы ее так:

нет, не так!
по условию мне нужно, что бы 
Цитата

Введите пройденный путь (-1, если ввод закончен): 287 / Введите расход бензина: 13 = Миль/галлон для этой заправки: 22.076923 

Цитата

то есть 287 / 13 = 22.076923

Это все по условию!

Автор: wallstreet 8.1.2013, 12:27
ага....
вводится: расход, кол-во пройденых миль;
выводится: сколько топлива потрачено, статистика путешествия по желанию;

пожалуйста:
Код

#include <iostream>
using namespace std;

float GM(int iConsumption, int iTripDistanse)
{
    float GalMil;
    GalMil = (double)iTripDistanse / iConsumption; // another example: GalMil = iZalil;
                                                   //                  GalMil /= iConsumption;

    return GalMil;
}

int main()
{
    int iFuelConsump, iGallons, flag=1;
    float iMilesOnFuel;
    char buf[100];
    float stat[100];
    int count = 0;
    while(flag)
    {
        cout << "Enter fuel consumption / mile: "; 
        cin >> iFuelConsump;
        cout << "Enter trip distanse: ";
        cin >> iGallons;
        iMilesOnFuel = GM(iFuelConsump, iGallons);
        sprintf(buf, "%.2lf", iMilesOnFuel);  
        cout << "You have lost " << buf << " gallons of fuel" << endl;
        cout << "===============================================\n";
        cout << "\n";
        cout << "If you want to exit, type '0' (zero) \n";
        cout << "If you want to see statistic information, type '1' (one) \n";
        cout << "If you want to continue, type 2 (two) \n";

        cin >> flag; 
        stat[count] = iMilesOnFuel; 
        count++;

        if(flag == 1)
        {
            int f = 0;
            char buf2[100];
            while(f<count)
            {
                sprintf(buf2, "%.2lf", stat[f]);  
                cout << "Your " << f+1 << "trip was: " << buf2 << " gallons" << endl;
                f++;
            }
        }
        cout << "\n";
    }
    return 0;
}

Автор: bsa 8.1.2013, 17:34

 ! 
bsa
danilkramatorsk, Зачем дублируешь темы?!?

http://forum.vingrad.ru/index.php?show_type=forum&showtopic=360783&kw=while-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)