Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/76: Рейтинг темы: голосов - 76, средняя оценка - 4.83
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584

Структура "Прогноз погоды"

20.10.2018, 15:52. Показов 16723. Ответов 59
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возникла проблема.
Нужно написать структуру, заполнив ее всякими значениями.
И нужно: Определить среднее количество осадков в местности, которая указана с клавиатуры в заданный период. Определить список местностей, где на заданную дату температура была +10. Определить направление ветра в заданной местности на заданную дату.
Может дадите какой-нибудь совет как по каждому пункту писать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.10.2018, 15:52
Ответы с готовыми решениями:

Прогноз погоды
Написать программу, которая принимает в себя массив из 7 чисел, каждое из которых соответствует температуре в этот день недели. Далее...

Прогноз погоды: получать данные о погоде с какого-нибудь сайта
Возможно ли средствами c++ получать данные о погоде с какого-нибудь сайта и выводить их, например, на консоль?

Структура "Прогноз погоды". Массив записей
Создайте массив записей со следующей структурой: Помогите, пожалуйста

59
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 00:44  [ТС]
Студворк — интернет-сервис помощи студентам
Когда вычисляется среднее значение осадков, вводиться местность
Программа просто вечно выдает значение error бегущая строка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#include "pch.h"
 
#include <iostream>
#include <cstdlib> 
#include <string>
using namespace std;
 
struct pogoda
{
    string mestnost;
 int data;
    int kol;
    int intens ;
    char skorost[100];
    string napravl;
    char den[20];
    char night[20];
} s[256];
int add(int n)
{
    cout << "mestnost: " << endl;
    cin >> s[n].mestnost;
    cout << "data: " << endl;
    cin >> s[n].data;
    cout << "osadki \n" << endl;
    cout << "kol: ";
    cin >> s[n].kol;
    cout << " intensiv: " << endl;
    cin >> s[n].intens;
    cout << "veter \n";
    cout << "skorost: " << endl;
    cin >> s[n].skorost;
    cout << "napravl: " << endl;
    cin >> s[n].napravl;
    cout << "temperatyra \n";
    cout << "den " << endl;
    cin >> s[n].den;
    cout << "night " << endl;
    cin >> s[n].night;
    return ++n;
}
void Out(int n)
{
    cout << "INFORM O BAZE: " << endl;
    for (int i = 0; i < n; i++)
    {
 
        cout << "mestnost: " << s[i].mestnost << endl;
        cout << "data:" << s[i].data << endl;
        cout << "\n";
        cout << "osadki \n" << endl;
        cout << "kol: " << s[i].kol << endl;
        cout << "intens " << s[i].intens << endl;
        cout << "veter \n"<<endl;
        cout << "skorost: "<< s[i].skorost << endl;
        cout << "napravl: " << s[i].napravl << endl;
        cout << "\n";
        cout << "temperatyra \n" << endl;
        cout << "den "<< s[i].den << endl;
        cout << "night "<< s[i].night << endl;
    }
    
}
int t(int n)
{
    cout << " vvod dati ";
    int dat = 0;
    int temp = 10;
    cin >> dat;
    
    for (int i = 0; i < n; i++)
    {
        cout << "vivod inform \n" << endl;
        if (s[i].data == temp)
        {
            cout << "mestnost: " << s[i].mestnost << endl;
        }
        else
        {
        cout<<"v etot den' ne bilo temperaturi 10 "<<endl;
        }
    }
    return ++n;
}
int vet(int n)
{
    int d =12;
    int sum;
    int osad;
    int mest;
    cout << "vvod mestnosti\n" << endl;
    cin >> mest;
    for (int i=0; i<n; i++)
    {
        sum = s[i].kol + s[i].intens;
        osad = sum / d;
    if (osad == mest) {
        
        cout << "sred osad " << endl;
    }
    else
    {
        cout << "error!" << endl;
    }
    }
 
    return ++n;
}
 
        int main()
        {
int i = 0, a, b, n = 0;
            cout << "menu" << endl;
            while (1)
            {
                cout << "1 - vvod;" << endl <<
                    "2 - all baza" << endl <<
                    "3 - mestonst gde 10" << endl<<
                    "4 -sr kol-vo ocadkov"<<endl;
                cin >> a;
                switch (a)
                {
                case 1:
                {
                    system("cls");
                    n = add(n);
                    system("cls");
                    break;
                }
                case 2:
                {
                    Out(n);
                    break;
                }
                case 3:
                {   n = t(n);
                break;
                }
                case 4:
                { n = vet(n);
                    break;
                }
                }
            }
        }
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
28.10.2018, 00:56
Цитата Сообщение от a_lar Посмотреть сообщение
Возможно я не туда написал расчет среднего?
Я понятия не имею. Вы же задачу не озвучили свою. Думаете я экстрасенс?
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 00:59  [ТС]
DrOffset, Задача: Составить структуру. Определить среднее количество осадков в местности, которая указана с клавиатуры в заданный период. Определить список местностей, где на заданную дату температура была +10. Определить направление ветра в заданной местности на заданную дату.
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
28.10.2018, 01:05
a_lar, а зачем вы количество осадков (kol - это же оно?) складываете с интенсивностью?
Вам нужно в цикле просуммировать все kol, которые соответствуют заданной местности, а затем, после цикла, разделить эту сумму на количество заданных месяцев (или дней, смотря что у вас).
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 01:06  [ТС]
DrOffset, месяцы не заданы.... вот с этим я вот и мучаюсь
может подскажите что делать с этой бедой?
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
28.10.2018, 01:14
Цитата Сообщение от a_lar Посмотреть сообщение
может подскажите что делать с этой бедой?
Ну наверное их надо задать с клавиатуры тоже?
Ну вот представьте, вы человек, пришли на сайт погоды. Хотите получить сводку за период. Вы же вводите диапазон дат?
У вас вообще где привязка ко времени? У вас месячные осадки, или осадки за день?
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 01:16  [ТС]
DrOffset, осадки за день
у меня вообще ничего не получается

можете хотя бы набросать пример?
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 01:30  [ТС]
где температура 10 гр не выдает значение что в этой местности не было температуры 10 градусов
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include "pch.h"
 
#include <iostream>
#include <cstdlib> 
#include <string>
using namespace std;
 
struct pogoda
{
    string mestnost;
 int data;
    int kol;
    int intens ;
    char skorost[100];
    string napravl;
    char den[20];
    char night[20];
} s[100];
int add(int n)
{
    cout << "mestnost: " << endl;
    cin >> s[n].mestnost;
    cout << "data: " << endl;
    cin >> s[n].data;
    cout << "osadki \n" << endl;
    cout << "kol: ";
    cin >> s[n].kol;
    cout << " intensiv: " << endl;
    cin >> s[n].intens;
    cout << "veter \n";
    cout << "skorost: " << endl;
    cin >> s[n].skorost;
    cout << "napravl: " << endl;
    cin >> s[n].napravl;
    cout << "temperatyra \n";
    cout << "den " << endl;
    cin >> s[n].den;
    cout << "night " << endl;
    cin >> s[n].night;
    return ++n;
}
void Out(int n)
{
    cout << "INFORM O BAZE: " << endl;
    for (int i = 0; i < 1; i++)
    {
        cout << "mestnost: " << s[i].mestnost << endl;
        cout << "data:" << s[i].data << endl;
        cout << "\n";
        cout << "osadki \n" << endl;
        cout << "kol: " << s[i].kol << endl;
        cout << "intens " << s[i].intens << endl;
        cout << "veter \n"<<endl;
        cout << "skorost: "<< s[i].skorost << endl;
        cout << "napravl: " << s[i].napravl << endl;
        cout << "\n";
        cout << "temperatyra \n" << endl;
        cout << "den "<< s[i].den << endl;
        cout << "night "<< s[i].night << endl;
    }
    
}
int t(int n) // температура где +10 гр
{
    
    int dat = 0;
    int temp = 10;
    cout << " vvod dati ";
    cin >> dat;
    for (int i = 0; i < n; i++)
    {
        cout << "vivod inform \n" << endl;
        if (s[i].data = 10)
        {
            cout << "mestnost: " << s[i].mestnost << endl;
        }
        else 
        cout << "v etot den' ne bilo temperaturi 10 " << endl;
    }
    return ++n;
}
int vet(int n) //среднее количество осадков
{
    int d =12;
    int sum;
    int osad;
    int mest;
    cout << "vvod mestnosti\n" << endl;
    cin >> mest;
    for (int i=0; i<n; i++)
    {
        sum = s[i].kol + s[i].intens;
        osad = sum / d;
    if (osad == mest) {
        
        cout << "sred osad " << endl;
    }
    else
    {
        cout << "error!" << endl;
    }
    }
 
    return ++n;
}
 
        int main()
        {
int i = 0, a, b, n = 0;
            cout << "menu" << endl;
            while (1)
            {
                cout << "1 - vvod;" << endl <<
                    "2 - all baza" << endl <<
                    "3 - mestonst gde 10" << endl<<
                    "4 -sr kol-vo ocadkov"<<endl;
                cin >> a;
                switch (a)
                {
                case 1:
                {
                    system("cls");
                    n = add(n);
                    system("cls");
                    break;
                }
                case 2:
                {
                    Out(n);
                    break;
                }
                case 3:
                {   n = t(n);
                break;
                }
                case 4:
                { n = vet(n);
                    break;
                }
                }
            }
        }
0
Заблокирован
28.10.2018, 01:34
C++
1
if (s[i].data = 10)
- здесь надо не =, а ==.
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 01:37  [ТС]
Смолевич, все равно неправильно работает
пишет теперь в этот день не было такой температуры
0
Заблокирован
28.10.2018, 01:40
А, да у тебя вообще перепутано. В структуре вообще нет поля с температурой, и ты проверяешь, что дата 10, а не температура.
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 01:48  [ТС]
Смолевич, а как добавить это поле? дописать в начало?
как потом писать в if?

Добавлено через 7 минут
Смолевич, теперь просто пустота выдается
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include "pch.h"
 
#include <iostream>
#include <cstdlib> 
#include <string>
using namespace std;
 
struct pogoda
{
    string mestnost;
 int data;
    int kol;
    int intens ;
    char skorost[100];
    string napravl;
    int temp;
    char den[20];
    char night[20];
} s[100];
int add(int n)
{
    cout << "mestnost: " << endl;
    cin >> s[n].mestnost;
    cout << "data: " << endl;
    cin >> s[n].data;
    cout << "osadki \n" << endl;
    cout << "kol: ";
    cin >> s[n].kol;
    cout << " intensiv: " << endl;
    cin >> s[n].intens;
    cout << "veter \n";
    cout << "skorost: " << endl;
    cin >> s[n].skorost;
    cout << "napravl: " << endl;
    cin >> s[n].napravl;
    cout << " sr_ temperatyra \n"<<endl;
    cin >> s[n].temp;
    cout << "den " << endl;
    cin >> s[n].den;
    cout << "night " << endl;
    cin >> s[n].night;
    return ++n;
}
void Out(int n)
{
    cout << "INFORM O BAZE: " << endl;
    for (int i = 0; i < 1; i++)
    {
        cout << "mestnost: " << s[i].mestnost << endl;
        cout << "data:" << s[i].data << endl;
        cout << "\n";
        cout << "osadki \n" << endl;
        cout << "kol: " << s[i].kol << endl;
        cout << "intens " << s[i].intens << endl;
        cout << "veter \n"<<endl;
        cout << "skorost: "<< s[i].skorost << endl;
        cout << "napravl: " << s[i].napravl << endl;
        cout << "\n";
        cout << "temperatyra \n" << endl;
        cout << "den "<< s[i].den << endl;
        cout << "night "<< s[i].night << endl;
    }
    
}
int t(int n) // температура где +10 гр
{
    
    int dat = 0;
 
    cout << " vvod dati ";
    cin >> dat;
    for (int i = 0; i < n; i++)
    {
        cout << "vivod inform \n" << endl;
        if (s[i].data == s[i].temp)
        {
            cout << "mestnost: " << s[i].mestnost << endl;
        }
        else 
        cout << "v etot den' ne bilo temperaturi 10 " << endl;
    }
    return ++n;
}
int vet(int n) //среднее количество осадков  //не работает
{
    int d;
    int sum;
    int osad;
    int mest;
    cout << "vvod mestnosti\n" << endl;
    cin >> mest;
    cout << "dni " << endl;
    cin >> d;
    for (int i=0; i<n; i++)
    {
        osad = s[i].kol / d;
    if (osad == mest) {
        
        cout << "sred osad " << endl;
        
    }
    else
    {
        cout << "error!" << endl;
        system("pause");
    }
    }
 
    return ++n;
}
 
        int main()
        {
int i = 0, a, b, n = 0;
            cout << "menu" << endl;
            while (1)
            {
                cout << "1 - vvod;" << endl <<
                    "2 - all baza" << endl <<
                    "3 - mestonst gde 10" << endl<<
                    "4 -sr kol-vo ocadkov"<<endl;
                cin >> a;
                switch (a)
                {
                case 1:
                {
                    system("cls");
                    n = add(n);
                    system("cls");
                    break;
                }
                case 2:
                {
                    Out(n);
                    break;
                }
                case 3:
                {   n = t(n);
                break;
                }
                case 4:
                { n = vet(n);
                    break;
                }
                }
            }
        }
0
Заблокирован
28.10.2018, 01:55
Вот видишь, поле правильно добавил! И притом без меня
Идем дальше.

C++
1
if (s[i].data == s[i].temp)
надо:
C++
1
if (s[i].data == dat && s[i].temp == 10)
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
28.10.2018, 01:59
Цитата Сообщение от a_lar Посмотреть сообщение
осадки за день
Тогда надо делить на количество дней в периоде. Или, если вводятся месяцы, сначала считать среднее месячное по дням, а потом еще раз среднее по месяцам. У вас в задании ни про дни, ни про месяцы ничего не написано, а понятие "дата" - растяжимое.

Допустим, пусть будут дни. Вы вводите дату (день, месяц, год), вводите количество осадков, вводите дневную температуру, вводите местность. Пусть пока все.
Теперь надо решить как это хранить. То, что у вас сделано - не подойдет, это неудобно.

Очевидно, что для упрощения поиска, вам лучше отсортировать массив по дате. Дату лучше храните в time_t, так удобнее сравнивать. Вот, допустим такая структура:
C++
1
2
3
4
5
6
7
struct Weather
{
    int rainfall; // кол-во осадков
    int temp; // температура
    std::string location; // местность
    time_t date; // дата
};
Делаете массив структур:
C++
1
std::vector<Weather> weatherData;
Заполняете его с клавиатуры.
Сортируете:
C++
1
std::sort(weatherData.begin(), weatherData.end(), [](Weather const & a, Weather const & b) { return a.date < b.date; });
Дальше, допустим, реализуем функцию подсчета среднего.
Вводим начальную дату, вводим конечную дату (time_t start, time_t finish).
С помощью std::lower_bound находим начало интересующего диапазона дат в массиве
C++
1
2
3
4
5
    auto startIt = std::lower_bound(weatherData.begin(), weatherData.end(), start, [](Weather const & a, time_t b) { return a.date < b; });
    if(startIt == weatherData.end())
    {
        // ошибка, нет такой даты, выход
    }
С помощью std::upper_bound находим конец интересующего диапазона в массиве.
C++
1
2
3
4
5
    auto finishIt = std::lower_bound(weatherData.begin(), weatherData.end(), finish, [](Weather const & a, time_t b) { return a.date < b; });
    if(finishIt == weatherData.end())
    {
        // ошибка, нет такой даты, выход
    }
В цикле по итераторам от начала до конца идем и проверяем заданную местность, если местность такая есть, то считаем по ней сумму осадков
C++
1
2
3
4
5
6
7
8
9
10
11
    int sumRainfall = 0;
    int cntDateForLoc = 0;
    ++finishIt; // если дата включительно
    for(auto it = startIt; it != finishIt; ++it)
    {
        if(it->location == loc) // loc заданная пользователем местность
        {
            sumRainfall += it->rainfall;
            ++cntDateForLoc;
        }
    }
Если cntDateForLoc не равно нулю (в этом случае мы не нашли данных по этой местности в заданном диапазоне), то считаем среднее за дни.
C++
1
2
3
4
5
    if(cntDateForLoc == 0)
    {
        // ошибка, для заданной местности нет данных, выход
    }
    int avRainfall = sumRainfall / cntDateForLoc;
В общем-то все.
Функции конвертации человекочитаемой даты в time_t найдете сам, чай не бином Ньютона
Всякую обвязку, вроде ввода данных, разбиения на функции - тоже сам.
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 02:02  [ТС]
DrOffset, проблема в том, что нужно писать код так как написан он у меня, а не вот этими функциями
векторами пользоваться запрещено

Добавлено через 1 минуту
DrOffset, а все такие функцию time_t проще использовать?
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 02:14  [ТС]
Смолевич, сижу 8 час над этой структурой
простите мозг уже отказал
спасибо вам)
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
28.10.2018, 02:15
Цитата Сообщение от a_lar Посмотреть сообщение
проблема в том, что нужно писать код так как написан он у меня, а не вот этими функциями
векторами пользоваться запрещено
Значит идете гуглить, что делают приведенные функции и пишете свои аналоги.
Тоже самое касается time_t - в гугле множество примеров.
0
 Аватар для Nishen
1359 / 857 / 366
Регистрация: 26.02.2015
Сообщений: 3,831
28.10.2018, 02:21
Цитата Сообщение от a_lar Посмотреть сообщение
Integer division by zero
Тебе это о чём-нибудь говорит?

Не по теме:

Зачем вы только технические специальности выбираете?

0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 11:42  [ТС]
Nishen, говорит.
эта ошибка уже исправлена
теперь некорректно работает программа
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include "pch.h"
 
#include <iostream>
#include <cstdlib> 
#include <string>
using namespace std;
 
struct pogoda
{
    string mestnost;
    time_t data;
    int kol;
    int intens;
    char skorost[100];
    string napravl;
    int temp;
    char den[20];
    char night[20];
} s[100];
int add(int n)
{
    cout << "mestnost: " << endl;
    cin >> s[n].mestnost;
    cout << "data: " << endl;
    cin >> s[n].data;
    cout << "osadki \n" << endl;
    cout << "kol: ";
    cin >> s[n].kol;
    cout << " intensiv: " << endl;
    cin >> s[n].intens;
    cout << "veter \n";
    cout << "skorost: " << endl;
    cin >> s[n].skorost;
    cout << "napravl: " << endl;
    cin >> s[n].napravl;
    cout << " sr_ temperatyra \n" << endl;
    cin >> s[n].temp;
    cout << "den " << endl;
    cin >> s[n].den;
    cout << "night " << endl;
    cin >> s[n].night;
    return ++n;
}
void Out(int n)
{
    cout << "INFORM O BAZE: " << endl;
    for (int i = 0; i < 1; i++)
    {
        cout << "mestnost: " << s[i].mestnost << endl;
        cout << "data:" << s[i].data << endl;
        cout << "\n";
        cout << "osadki \n" << endl;
        cout << "kol: " << s[i].kol << endl;
        cout << "intens " << s[i].intens << endl;
        cout << "veter \n" << endl;
        cout << "skorost: " << s[i].skorost << endl;
        cout << "napravl: " << s[i].napravl << endl;
        cout << "\n";
        cout << "sr_temperatyra \n" << s[i].temp << endl;
        cout << "den " << s[i].den << endl;
        cout << "night " << s[i].night << endl;
    }
 
}
int t(int n) // температура где +10 гр
{
 
    int dat = 0;
 
    cout << " vvod dati ";
    cin >> dat;
    for (int i = 0; i < 1; i++)
    {
        cout << "vivod inform \n" << endl;
        if (s[i].data == dat && s[i].temp == 10)
        {
            cout << "mestnost: " << s[i].mestnost << endl;
        }
        else
            cout << "v etot den' ne bilo temperaturi 10 " << endl;
    }
    return ++n;
}
int vet(int n) //среднее количество осадков  
{
    int d;
    int sum;
    int osad;
    int mest;
    cout << "vvod mestnosti\n" << endl;
    cin >> mest;
    cout << "dni " << endl;
    cin >> d;
    for (int i = 0; i < n; i++)
    {
        osad = s[i].kol / d;
        if (osad == mest) {
 
            cout << "sred osad " << endl;
 
        }
        else
        {
            cout << "error!" << endl;
            system("pause");
        }
    }
 
    return ++n;
}
 
int main()
{
    int i = 0, a, b, n = 0;
    cout << "menu" << endl;
    while (1)
    {
        cout << "1 - vvod;" << endl <<
            "2 - all baza" << endl <<
            "3 - mestonst gde 10" << endl <<
            "4 -sr kol-vo ocadkov" << endl;
        cin >> a;
        switch (a)
        {
        case 1:
        {
            system("cls");
            n = add(n);
            system("cls");
            break;
        }
        case 2:
        {
            Out(n);
            break;
        }
        case 3:
        {   n = t(n);
        break;
        }
        case 4:
        { n = vet(n);
        break;
        }
        }
    }
}
Миниатюры
Структура "Прогноз погоды"  
0
3 / 3 / 0
Регистрация: 07.12.2017
Сообщений: 584
28.10.2018, 12:41  [ТС]
Неправильно работает высчитывание "среднего количества осадков"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include "pch.h"
 
#include <iostream>
#include <cstdlib> 
#include <string>
using namespace std;
 
struct pogoda
{
    string mestnost;
    time_t data;
    int kol;
    int intens;
    char skorost[100];
    string napravl;
    int temp;
    char den[20];
    char night[20];
} s[100];
int add(int n)
{
    cout << "mestnost: " << endl;
    cin >> s[n].mestnost;
    cout << "data: " << endl;
    cin >> s[n].data;
    cout << "osadki \n" << endl;
    cout << "kol: ";
    cin >> s[n].kol;
    cout << " intensiv: " << endl;
    cin >> s[n].intens;
    cout << "veter \n";
    cout << "skorost: " << endl;
    cin >> s[n].skorost;
    cout << "napravl: " << endl;
    cin >> s[n].napravl;
    cout << " sr_ temperatyra \n" << endl;
    cin >> s[n].temp;
    cout << "den " << endl;
    cin >> s[n].den;
    cout << "night " << endl;
    cin >> s[n].night;
    return ++n;
}
void Out(int n)
{
    cout << "INFORM O BAZE: " << endl;
    for (int i = 0; i < 1; i++)
    {
        cout << "mestnost: " << s[i].mestnost << endl;
        cout << "data:" << s[i].data << endl;
        cout << "\n";
        cout << "osadki \n" << endl;
        cout << "kol: " << s[i].kol << endl;
        cout << "intens " << s[i].intens << endl;
        cout << "veter \n" << endl;
        cout << "skorost: " << s[i].skorost << endl;
        cout << "napravl: " << s[i].napravl << endl;
        cout << "\n";
        cout << "sr_temperatyra \n" << s[i].temp << endl;
        cout << "den " << s[i].den << endl;
        cout << "night " << s[i].night << endl;
    }
 
}
int t(int n) // температура где +10 гр
{
 
    int dat = 0;
 
    cout << " vvod dati ";
    cin >> dat;
    for (int i = 0; i < 1; i++)
    {
        cout << "vivod inform \n" << endl;
        if (s[i].data == dat && s[i].temp == 10)
        {
            cout << "mestnost: " << s[i].mestnost << endl;
        }
        else
            cout << "v etot den' ne bilo temperaturi 10 " << endl;
    }
    return ++n;
}
int vet(int n) //среднее количество осадков  
{
    int d;
    int sum;
    int osad;
    int mest;
    cout << "vvod mestnosti\n" << endl;
    cin >> mest;
    cout << "dni " << endl;
    cin >> d;
    for (int i = 0; i < n; i++)
    {
        osad = s[i].kol / d;
        if (osad == mest) {
 
            cout << "sred osad " << endl;
 
        }
        else
        {
            cout << "error!" << endl;
            system("pause");
        }
    }
 
    return ++n;
}
 
int main()
{
    int i = 0, a, b, n = 0;
    cout << "menu" << endl;
    while (1)
    {
        cout << "1 - vvod;" << endl <<
            "2 - all baza" << endl <<
            "3 - mestonst gde 10" << endl <<
            "4 -sr kol-vo ocadkov" << endl;
        cin >> a;
        switch (a)
        {
        case 1:
        {
            system("cls");
            n = add(n);
            system("cls");
            break;
        }
        case 2:
        {
            Out(n);
            break;
        }
        case 3:
        {   n = t(n);
        break;
        }
        case 4:
        { n = vet(n);
        break;
        }
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.10.2018, 12:41

Прогноз погоды
Здравствуйте, помогите пожалуйста решить задачу: Программист Виктор занимается совершенно секретными разработками в области...

Прогноз погоды
Составить приложение которое по введенному прошедшему дню календаря показывает прогноз погоды. Не знаю с чего начать даже.

Прогноз погоды
Добрый день. Подскажите возможно ли вывести отдельно в ячейки погодные условия (давление, температура, скорость и направление ветра)?

Прогноз погоды
Привет всем) &quot;l1 - список, элементами которого являются структуры, в которых хранятся дневные сводки температуры за месяц. Сформировать...

Прогноз погоды
Пишу телеграм-бота. Показывает погоду на данный момент. Как реализовать ежедневную рассылку прогноза погоды на сутки?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru