Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
NikiKoyot
2 / 2 / 0
Регистрация: 08.12.2013
Сообщений: 34
#1

Присвоение в цикле - C++

08.12.2013, 10:30. Просмотров 776. Ответов 10
Метки нет (Все метки)

Так выглядит условие задачи:
Написать программу нахождения средней температуры за неделю и подсчета количества теплых и холодных дней. Также вывести на экран значения температуры самого холодного и самого теплого дней за неделю. Температура вводится с клавиатуры.
Вот что у меня получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
double t, s = 0, st, tt = 0, ht = 0, kd = 0, min = 0, max = 0;
    do
        {
        cout << "Введите температуру" << endl;
        cin >> t;
        kd++;
        s = s + t;
        st = s / kd;
        (t < 0) ? ht++ : tt++;
        if (t > max){ max = t; }
        if (t < min){ min = t; }
        } 
    while (kd < 7);
cout << "Средняя температура за неделю: " << st << endl;
cout << "Холодных дней: " << ht << endl;
cout << "Теплых дней: " << tt << endl;
cout << "Максимальная температура за неделю: " << max << endl;
cout << "Минимальная температура за неделю: " << min << endl;
return 0;
Как сделать так чтобы условия минимальной и максимальной температуры выводилось правильно?
P.S: только начал изучать циклы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2013, 10:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Присвоение в цикле (C++):

Присвоение структур - C++
Помогите пожалуйста такая проблема address *p; p = new address; p-&gt;surname = surname; ...

присвоение значения - C++
Здравствуйте! можно ли каким-нибудь образом присвоить значению int значение char? К примеру: у меня есть массив типа int, нужно найти...

вывод, присвоение - C++
если я хочу присвоить переменной не число, а слово, то какой тип надо писать? string? при выводе из файла мне нужно посчитать количество...

Что за присвоение? - C++
вот код с http://www.cplusplus.com/doc/tutorial/classes/ #include &lt;iostream&gt; using namespace std; class CRectangle { int...

Присвоение значений - C++
В течение работы программы в строковую переменную а1 случайным образом приходят имена переменных, объявленных в данной программе. Этим...

Присвоение значений - C++
Всем доброго времени суток, подскажите как присвоить переменной такое значение? 48847E5536130C10

10
Yanush
159 / 156 / 46
Регистрация: 28.09.2013
Сообщений: 288
Завершенные тесты: 1
08.12.2013, 11:15 #2
Попробуй так:

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
#include <iostream>
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    int dayNum;
    double curTemp = .0;
    double avgTemp = .0;
    double maxTemp = .0;
    double minTemp = .0;
    int nullTemp = 0;
    int hDayNum = 0;
    int cDayNum = 0;
 
    std::cout << "Введите кол-во дней: ";
    std::cin >> dayNum;
    system("CLS");
 
 
    for (int i = 0; i < dayNum; i++)
    {
        std::cout << "Введите температуру за " << (i + 1) << " день: ";
        std::cin >> curTemp;
        avgTemp +=curTemp;
 
        if (curTemp < 0.0)
            cDayNum++;
        else if (curTemp > 0.0)
            hDayNum++;
        else
            nullTemp++;
 
        if (curTemp > maxTemp)
            maxTemp = curTemp;
        else if (curTemp < minTemp)
            minTemp = curTemp;
        system("CLS");
    }
    avgTemp /= dayNum;
 
    std::cout << "Средняя температура за " << dayNum << " дней: " << avgTemp << ".\n";
    std::cout << "Холодных дней - " << cDayNum << ".\n";
    std::cout << "Теплых дней - " << hDayNum << ".\n";
    std::cout << "Дней, с нулевой температурой - " << nullTemp << ".\n";
 
    std::cout << "Максимальныя температура за " << dayNum << " дней: " << maxTemp << ".\n";
    std::cout << "Минимальная температура за " << dayNum << " дней: " << minTemp << ".\n";
 
 
    system("pause");
    return 0;
}
1
NikiKoyot
2 / 2 / 0
Регистрация: 08.12.2013
Сообщений: 34
08.12.2013, 11:25  [ТС] #3
Yanush, Пребольшое спасибо тебе, добрый человек
0
NikiKoyot
2 / 2 / 0
Регистрация: 08.12.2013
Сообщений: 34
08.12.2013, 11:42  [ТС] #4
Цитата Сообщение от Yanush Посмотреть сообщение
Попробуй так:

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
#include <iostream>
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    int dayNum;
    double curTemp = .0;
    double avgTemp = .0;
    double maxTemp = .0;
    double minTemp = .0;
    int nullTemp = 0;
    int hDayNum = 0;
    int cDayNum = 0;
 
    std::cout << "Введите кол-во дней: ";
    std::cin >> dayNum;
    system("CLS");
 
 
    for (int i = 0; i < dayNum; i++)
    {
        std::cout << "Введите температуру за " << (i + 1) << " день: ";
        std::cin >> curTemp;
        avgTemp +=curTemp;
 
        if (curTemp < 0.0)
            cDayNum++;
        else if (curTemp > 0.0)
            hDayNum++;
        else
            nullTemp++;
 
        if (curTemp > maxTemp)
            maxTemp = curTemp;
        else if (curTemp < minTemp)
            minTemp = curTemp;
        system("CLS");
    }
    avgTemp /= dayNum;
 
    std::cout << "Средняя температура за " << dayNum << " дней: " << avgTemp << ".\n";
    std::cout << "Холодных дней - " << cDayNum << ".\n";
    std::cout << "Теплых дней - " << hDayNum << ".\n";
    std::cout << "Дней, с нулевой температурой - " << nullTemp << ".\n";
 
    std::cout << "Максимальныя температура за " << dayNum << " дней: " << maxTemp << ".\n";
    std::cout << "Минимальная температура за " << dayNum << " дней: " << minTemp << ".\n";
 
 
    system("pause");
    return 0;
}
C++
1
2
3
4
if (curTemp > maxTemp)
            maxTemp = curTemp;
        else if (curTemp < minTemp)
            minTemp = curTemp;
Я ввел температуру: 1,2,3. А оно выдает минимальная температура 0. такая же ошибка, что и у меня
0
Миниатюры
Присвоение в цикле  
Liden
19 / 19 / 2
Регистрация: 19.11.2013
Сообщений: 83
08.12.2013, 11:54 #5
NikiKoyot, так вы зачем min и max присваиваете 0? просто объявите и сначала присвойте значение первого значения температуры, а потом сравнивайте с последующими, если больше(меньше), то меняйте на это значение.
1
NikiKoyot
2 / 2 / 0
Регистрация: 08.12.2013
Сообщений: 34
08.12.2013, 12:01  [ТС] #6
Цитата Сообщение от Liden Посмотреть сообщение
NikiKoyot, так вы зачем min и max присваиваете 0? просто объявите и сначала присвойте значение первого значения температуры, а потом сравнивайте с последующими, если больше(меньше), то меняйте на это значение.
А в коде как оно будет выглядеть? Заранее спасибо
0
Liden
19 / 19 / 2
Регистрация: 19.11.2013
Сообщений: 83
08.12.2013, 12:33 #7
NikiKoyot, самый простой вариант: записать все температуры в массив, отсортировать их и вывести самый первый(макс элемент) и самый последний (минимальный элемент). Попробуйте сами, не получится - напишу код.
1
NikiKoyot
2 / 2 / 0
Регистрация: 08.12.2013
Сообщений: 34
08.12.2013, 12:38  [ТС] #8
Цитата Сообщение от Liden Посмотреть сообщение
NikiKoyot, самый простой вариант: записать все температуры в массив, отсортировать их и вывести самый первый(макс элемент) и самый последний (минимальный элемент). Попробуйте сами, не получится - напишу код.
Нельзя использовать массив.Да и не изучали мы его ещё, но было бы интересно посмотреть.
0
Yanush
159 / 156 / 46
Регистрация: 28.09.2013
Сообщений: 288
Завершенные тесты: 1
08.12.2013, 12:39 #9
Точняк, извиняюсь.


double minTemp = 0.0; // тут какое-нибудь большое число подставить, напри 1000.0
double maxTemp = .0; // а тут наоборот - маленькое - -999.0
else if (curTemp < minTemp) // вот тут else нужно убрать.
1
NikiKoyot
2 / 2 / 0
Регистрация: 08.12.2013
Сообщений: 34
08.12.2013, 12:56  [ТС] #10
Цитата Сообщение от Yanush Посмотреть сообщение
Точняк, извиняюсь.


double minTemp = 0.0; // тут какое-нибудь большое число подставить, напри 1000.0
double maxTemp = .0; // а тут наоборот - маленькое - -999.0
else if (curTemp < minTemp) // вот тут else нужно убрать.
Вот теперь правильно. Спасибо!
0
uhx
60 / 60 / 6
Регистрация: 11.07.2013
Сообщений: 304
08.12.2013, 13:50 #11
Цитата Сообщение от Liden Посмотреть сообщение
NikiKoyot, самый простой вариант: записать все температуры в массив, отсортировать их и вывести самый первый(макс элемент) и самый последний (минимальный элемент). Попробуйте сами, не получится - напишу код.
Ну дак, пузырьковая сортировка, не? Да только зачем так делать, если можно переменную t сравнивать с максимальной на ДАННЫЙ момент температурой, и если она больше - то в максимальную записываем t и продолжаем выполнять цикл.

Добавлено через 6 минут
http://joxi.ru/wECkUtg5CbAnBe8sgig
Вот собственно и в чем проблема. Ведь минимальная температура изначально была 0, а если все дни теплые? То конечно же переменной min ничего не присвоится.
0
08.12.2013, 13:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2013, 13:50
Привет! Вот еще темы с ответами:

Не выполняет присвоение - C++
вопрос в комментариях. game::game(int size_team_, int begin_counter): size_team(size_team_) { srand(time(NULL)); Tunit...

Присвоение типов в С++ - C++
Как присвоить елементам массива mas_a елементы строки String.Массив имеет тип int,а String char?

Присвоение указателей - C++
Здарствуйте. Например я пишу пользовательский контейнер (класс шаблон). Узел будет содержать ключ, данные и т.д. я объявляю ключ...

присвоение typeid - C++
При использовании cout&lt;&lt;typeid(/*...*/).name()&lt;&lt;&quot;\n&quot;; выдается что переменная входит в класс, например, Object Есть ли возможность...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru