Страница 1 из 1
Задачка на С++... 1 курс ПОМОГИТЕ ПОЖАЛСТА
Добавлено: 20 фев 2008, 21:09
d1mkoo
ТЕма "ЦИКЛЫ", массивы нельзя использовать, помогите пожалста с решением задачи, никак не могу понять ,как это сделать без массива...
вот текст задачи:
12. Известна температура больного за 20 дней пребывания в больнице. Можно ли его выписывать, если для этого требуется, чтобы не менее половины всех дней, когда у него была температура ниже 37°, приходилось на вторую половину его пребывания в больнице?
ps спасибо заранее всем кто ответит
Re: Задачка на С++... 1 курс ПОМОГИТЕ ПОЖАЛСТА
Добавлено: 20 фев 2008, 23:08
Dim...ON
написал тебе в аську, но на случай, если ты там не бываешь:
просто заводишь 2 переменные типа int для счётчика, и по мере ввода нового значения температуры (а как я понимаю оно будет вводиться по мере обсчёта, иначе никак без массивов) проверяешь это значение на 2 условия:
1) оно меньше 37
2) оно из первой десятки (тогда записываешь его в первый счётчик) или из второй (тогда - во второй)
а в конце просто сравниваешь 2 счётчика и если второй > первого, то пинаешь больного с его койки
Re: Задачка на С++... 1 курс ПОМОГИТЕ ПОЖАЛСТА
Добавлено: 21 фев 2008, 09:44
airyashov
Проанализируйте только втрорую десятку.
Температура <37 к счетчику +1, счетчик=10, да-пинуть с койки
Re: Задачка на С++... 1 курс ПОМОГИТЕ ПОЖАЛСТА
Добавлено: 21 фев 2008, 10:52
Хыиуду
airyashov, так не сработает. Допустим, у него была температура ниже 37 два раза в первые 10 дней и 4 раза во вторые. По правилам - его надо выписывать. А по вашей системе - надо оставлять.
Хотя по логике вещей больного с такой динамикой выписывать нельзя.
Re: Задачка на С++... 1 курс ПОМОГИТЕ ПОЖАЛСТА
Добавлено: 21 фев 2008, 11:09
airyashov
Хыиуду писал(а):airyashov, так не сработает. Допустим, у него была температура ниже 37 два раза в первые 10 дней и 4 раза во вторые. По правилам - его надо выписывать. А по вашей системе - надо оставлять.
Хотя по логике вещей больного с такой динамикой выписывать нельзя.
неправильно понял условия, тогда один счетчик только для первой половины суммировать, а для второй вычитать или наоборот
Re: Задачка на С++... 1 курс ПОМОГИТЕ ПОЖАЛСТА
Добавлено: 21 фев 2008, 14:23
Vicious
Для VS 2005 это будет выглядеть примерно так:
Код: Выделить всё
#include "stdafx.h"
#include <conio.h>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
double dTemp;
int iDaysTLess37 = 0;
int iDaysTLess37SecondHalf = 0;
for (int i = 0; i < 20; i++)
{
cout << i+1 << " day temperature is: ";
cin >> dTemp;
if (dTemp < 37)
{
iDaysTLess37++;
if (i > 9)
iDaysTLess37SecondHalf++;
}
}
if (iDaysTLess37SecondHalf > iDaysTLess37/2)
cout << "Go home";
else
cout << "Stay in hospital";
cout << "\nPress any key to exit...";
_getch();
return 0;
}
Re: Задачка на С++... 1 курс ПОМОГИТЕ ПОЖАЛСТА
Добавлено: 21 фев 2008, 14:46
d1mkoo
спасибо всем огромное.... очень помогло, респект