Тема: Неккоректно працює программа. Не виконується else
Стара помилка була ліквідована, але з'явилась ще одна нова.
Потрібно визначити напрямок вітрі по заданій місцевості на задану дату. Визначення напрямку вітру починається з 111 строки. Можливо, я щось не те прирівнюю?
Не працює ні виведення інформації, ні помилка.
#include "pch.h"
#include <string>
#include <iostream>
#include <cstdlib>
using namespace std;
struct Weather //cтруктура "Погода"
{
string local; //район місцевості
string data; //дата
int day; //день
int count; //кількість опадів
double intensity; //інтенсивність опадів
double speed; //швидкість вітру
int temp; //середня температура
string direction; //напрямок вітру
string afternoon; //температура вдень
string night;//температура вночі
} s[100];
int add(int n) //додавання інформації в базу
{
cout << "local: " << endl;
cin >> s[n].local;
cout << "data: " << endl;
cin >> s[n].data;
cout << "day: " << endl;
cin >> s[n].day;
cout << "precipitation: \n" << endl;
cout << "count: ";
cin >> s[n].count;
cout << " intensiv: " << endl;
cin >> s[n].intensity;
cout << "wind \n";
cout << "speed: " << endl;
cin >> s[n].speed;
cout << "direction: " << endl;
cin >> s[n].direction;
cout << " average temperature: " << endl;
cin >> s[n].temp;
cout << "afternoon: " << endl;
cin >> s[n].afternoon;
cout << "night: " << endl;
cin >> s[n].night;
return ++n;
}
void Out(int n) //виведення бази
{
cout << "INFORM PRO BAZU: " << endl;
for (int i = 0; i < n; i++)
{
cout << "local: " << s[i].local << endl;
cout << "data: " << s[i].data << endl;
cout << "\n";
cout << "precipitation: \n" << endl;
cout << "count: " << s[i].count << endl;
cout << "intensity" << s[i].intensity << endl;
cout << "wind \n" << endl;
cout << "speed: " << s[i].speed << endl;
cout << "direction: " << s[i].direction << endl;
cout << "\n";
cout << "average temperature: " << s[i].temp << endl;
cout << "afternoon: " << s[i].afternoon<< endl;
cout << "night: " << s[i].night << endl;
}
}
void t(int n) // температура в місцевості +10
{
string dat = 0;
cout << " add dat: ";
cin >> dat;
bool present = false;
for (int i = 0; i < n; i++)
{
cout << "vivod inform \n" << endl;
if (s[i].data == dat && s[i].temp == 10)
{
cout << "local " << s[i].local << endl;
present = true;
}
}
if (!present)
cout << dat << " there was no temperature of 10 degrees " << endl;
}
void average(int n) //середня кількість опадів
{
string loc;
cout << " add local \n" << endl;
cin >> loc;
for (int i = 0; i < n; i++)
{
if (s[i].local == loc)
{
if (s[i].day != 0) // якщо виконується умова
{
double precipitation = (double)s[i].count / s[i].day;
cout << "average precipitation " << precipitation << endl;
}
}
else
cout << "average precipitation = 0 " << endl; // якщо не виконується умова
}
}
void wind(int n) //визначення напрямку вітру в заданий день та в заданій місцевості
{
string locaal;
string date;
cout << " add local " << endl;
cin >> locaal;
cout << " date " << endl;
cin >> date;
for (int i = 0; i < n; i++)
{
if (s[i].local == locaal)
{
if (s[i].direction == s[i].data)
{
cout << "direction was " << s[i].direction << endl;
cout << " date " << s[i].data << endl;
}
}
else
cout << "error! " << endl;
}
}
int main()
{
cout << "menu" << endl;
int n = 0;
while (1)
{
cout << "1 - add;" << endl <<
"2 - all baza" << endl <<
"3 - local 10" << endl <<
"4 - average precipitation " << endl<<
"5 - direction wind" <<endl;
int a; cin >> a;
switch (a)
{
case 1:
system("cls");
n = add(n);
system("cls");
break;
case 2:
Out(n);
break;
case 3:
t(n);
break;
case 4:
average(n);
break;
case 5:
wind(n);
break;
}
}
system("pause");
return 0;
}