Проскакивает работа программы в if else

197
16 марта 2019, 11:30

Нужно определить направление ветра в заданной местности и по заданной дате. Проблема в том, что 5 пункт (определение ветра) не выводит нужную информацию.

#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 << "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; 
}

Answer 1

Сравнения даты и направления ветра s[i].direction == s[i].data явно опечатка

READ ALSO
Нужно вывести на экран массив [закрыт]

Нужно вывести на экран массив [закрыт]

Мне нужно вывести на экран массив и символ, который встречается больше всего в нём

171
Ошибка скачивания файла

Ошибка скачивания файла

Для скачивания файла, я пытался использовать функциию URLDownloadToFile(), текстовый документ и фото, она скивает нормально, но при скачиванииexe файлов...

149
Узнать загрузился ли процесс

Узнать загрузился ли процесс

Возможно ли средствами WinApi узнать, что запущенный процесс полностью загрузился?

131
Сравнение элементов массива и ArrayLIst-a

Сравнение элементов массива и ArrayLIst-a

У меня имеется класс Gene, который трансформирует математическое выражение вида ( x + 3 ) в ,например, массив array={"+","x","3",null,null,

171