• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Некорректная работа программы if else

nicknameyr

Ученик
Регистрация
28 Окт 2018
Сообщения
2
Реакции
0
Баллы
0
Некорректная работа программы if else

Когда выполяется программа она просто проскакивает, когда идет расчет среднего количества осадков
Код:
#include "pch.h"
#include <string>
#include <iostream>
#include <cstdlib> 

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 < 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 << "sr_temperatyra: " << 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 < n; 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 sred(int n) //среднее количество осадков  //не работает
{
    double osad;
	string mest;
	int dni;
	cout << "vvod mestnosti\n" << endl;
	cin >> mest;
	cout << "vvod dni " << endl;
	cin >> dni;
	for (int i = 1; i < n; i++)
	{
		osad = s[i].kol / dni;
		if (s[i].kol == osad)
		{
			cout << "sred osad " <<osad<< endl;
		}
		else

			cout << "error; net takoi mestonsti !" << endl;

	}
	return ++n;
}
int napravlenie(int n)  // направление ветра в заданой местности и за заданую дату
{
	return ++n;
}
int main()
{
	int i = 0, a, 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 = sred(n);
		break;
		}
		case 5:
		{
			n = napravlenie(n);
			break;
		}
		}
	}
}
 
В указанном вами месте вы сравниваете делимое и частное от деления, естественно, что такое условие будет ложным в большинстве случаев, так как при делении частное почти всегда меньше делимого (кроме случая, когда делитель равен 1).
 
Назад
Сверху