где ашипка?

Тема в разделе "Общие вопросы по С и С++", создана пользователем qazaq, 14 сен 2006.

Статус темы:
Закрыта.
  1. qazaq

    qazaq Гость

    Пасиба Partisanу за идею...
    начал все ето делать по его коду и нифига чето не идет...
    там снизу файлъ с температурой сгенерированой. в массив TemperaturaZaMesiats она заносица а дальше - всё. не идет чето...

    Код (Text):
    #include <iostream.h>
    #include <fstream.h>
    #include <iomanip.h>
    #include <stdlib.h>
    #include <math.h>
    main()
    {
    double TemperaturaZaMesiats[31];
    double OsadkiZaMesiats[31];
    double sumsneg=0;
    double sumdojd=0;
    ifstream fin("text.txt", ios::in);
    if (!fin)
    {
    cout<<"file not found"<<endl;
    exit (1);[attachmentid=569]
    }

    int i=0;
    while (!fin.eof())
    {
    {
    fin>>TemperaturaZaMesiats[i];
    }
    cout<<TemperaturaZaMesiats[i]<<endl;

    for (i=0;i<31;i++)

    if (TemperaturaZaMesiats[i]>=0)
    {
    sumdojd += OsadkiZaMesiats[i];
    }
    else
    {
    sumsneg += OsadkiZaMesiats[i];
    }
    }
    cout<<"Vsego snega za mesiats = "<<sumsneg<<endl;
    cout<<"Vsego dozhdia za mesiats = "<<sumdojd<<endl;

    return 0;}
    Посмотреть вложение text.txt Посмотреть вложение osadki.txt

    вота условие задачи есчо:
    Информация о температуре воздуха и осадках, выпавших в течение месяца задана в виде двух массивов. Определить какое количество осадков выпало в виде дождя, а какое в виде снега...
     
  2. Partisan

    Partisan Гость

    А где данные о количестве осадков за каждый день??

    Посмотрел температуры за месяц.
    Ну ничего ж себе суточные перепады ;)
    Вчера мороз -10, а назавтра +20 :D
     
  3. qazaq

    qazaq Гость

    да лан с перепадами - буду новые генерировать пока превдоподобными не окажутся более менне...)))
    а я и хотел вот спросить как ето сделать про осадки за каждый день...
     
  4. Partisan

    Partisan Гость

    Блин, температуру так умеешь генерировать, а как осадки, так резко забываешь, как генерировать ? :D
    Единственное отличие: осадков не может быть меньше нуля. Ноль может быть.

    А то получатся не осадки, а испарения ;)
     
  5. qazaq

    qazaq Гость

    нада значит еще один фаел сгенерировать типа 0 - нет осадков, 1 - дождь, 2- снег штоле?
    как их потом связать то 2 ети массива?
     
  6. Partisan

    Partisan Гость

    Ну, насколько я помню из географии, количество осадков обычно меряють в миллиметрах.
    Итого, пример массива с осадками:
    Код (Text):
    Osadki[1] = 50;
    Osadki[2] = 12;
    Osadki[3] = 3
    Osadki[4] = 7
    Osadki[5] = 0
    Osadki[6] = 1
    ................
    Osadki[29] = 20
    Osadki[30] = 6
    Osadki[31] = 0
    Остальное всё делать так, как я и предлагал.
     
  7. qazaq

    qazaq Гость

    аа блин так чтоле...
    ясна. пасибо!
    ща попробовайу...
     
  8. qazaq

    qazaq Гость

    вота я там добавил файл с осадками...
    а вота код:
    #include <iostream.h>
    #include <fstream.h>
    #include <iomanip.h>
    #include <stdlib.h>
    main()
    {
    float Temperatura[31];
    float Osadki[31];
    double sumsneg=0;
    double sumdojd=0;
    ifstream fin("text.txt", ios::in);
    ifstream fin2("osadki.txt", ios::in);
    if (!fin)
    {
    cout<<"file not found!"<<endl;
    exit (1);
    }
    if (!fin2)
    {
    cout<<"file not found!"<<endl;
    exit (1);
    }
    int i=0;
    while (!fin.eof())
    {
    {
    fin>>Temperatura;
    }
    int k=0;
    while (!fin2.eof())
    {
    {
    fin2>>Osadki[k];
    }
    cout<<Osadki[k]<<endl;

    i++;

    if (Temperatura>=0)
    {
    sumdojd+=Osadki[k];
    }
    else
    {
    sumsneg+=Osadki[k];
    }
    }
    }
    cout<<"Vsego dozhdia za mesiats = "<<sumdojd<<endl;
    cout<<"Vsego snega za mesiats = "<<sumsneg<<endl;

    return 0;}

    он блин для дождя считает тока последний элемент из Osadki[k].
    а для снега - сумму всех до последнего элемента. че за?
    где че убавить\добавить?
     
  9. qazaq

    qazaq Гость

    if (Temperatura>=0)
    {
    i++;
    sumdojd+=Osadki[k];
    }
    else
    {
    i++;
    sumsneg+=Osadki[k];
    }

    вот так вот сделал и он уже другое чето считает, но явно не то, проверял.
    эти он 2 массива ваще не связывает походу
    и еще у Temperatura выводит последний элемент 2 раза в конце
     
  10. Partisan

    Partisan Гость

    С массивами работай от 1 до 31 включительно. Нулевой элемент для простоты не используем, потому что нулевого дня нет.
    И вообще, с какого такого для массивов используются разные индексы ???
    Посиди, и прогони весь свой алгоритм вручную, шаг за шагом. Когда поймёшь работу алгоритма, тогда и сам без проблем найдёшь ошибки и справишься с задачей.
    А я пойду поем пока что.
     
  11. qazaq

    qazaq Гость

    все. получилос. наканецтьа!
    тока пришлось вместо while for сделать и поканало
    еще рас пасип партизан
     
  12. Partisan

    Partisan Гость

    Ну слава Богу !
    На здоровье ! :angry:

    Кстати, правильнее для месяца с 31 днём обьявить так:
    Код (Text):
    float Temperatura[32]; // индекс: 0...31
    float Osadki[32];     // индекс: 0...31
    Ну а использовать от 1 до 31.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей