Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Некорректная работа программы if else (http://www.tehnari.ru/f41/t261541/)

nicknameyr 28.10.2018 18:12

Некорректная работа программы 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;
                }
                }
        }
}


AlexZir 30.10.2018 12:07

В указанном вами месте вы сравниваете делимое и частное от деления, естественно, что такое условие будет ложным в большинстве случаев, так как при делении частное почти всегда меньше делимого (кроме случая, когда делитель равен 1).


Часовой пояс GMT +4, время: 17:31.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.