Задачка на С++... 1 курс ПОМОГИТЕ ПОЖАЛСТА

Ответить
d1mkoo
Сообщения: 12
Зарегистрирован: 06 фев 2008, 18:58

20 фев 2008, 21:09

ТЕма "ЦИКЛЫ", массивы нельзя использовать, помогите пожалста с решением задачи, никак не могу понять ,как это сделать без массива...
вот текст задачи:
12. Известна температура больного за 20 дней пребывания в больнице. Можно ли его выписывать, если для этого требуется, чтобы не менее половины всех дней, когда у него была температура ниже 37°, приходилось на вторую половину его пребывания в больнице?
ps спасибо заранее всем кто ответит
Dim...ON
Сообщения: 75
Зарегистрирован: 28 янв 2008, 01:10
Контактная информация:

20 фев 2008, 23:08

написал тебе в аську, но на случай, если ты там не бываешь:

просто заводишь 2 переменные типа int для счётчика, и по мере ввода нового значения температуры (а как я понимаю оно будет вводиться по мере обсчёта, иначе никак без массивов) проверяешь это значение на 2 условия:
1) оно меньше 37
2) оно из первой десятки (тогда записываешь его в первый счётчик) или из второй (тогда - во второй)
а в конце просто сравниваешь 2 счётчика и если второй > первого, то пинаешь больного с его койки
airyashov
Сообщения: 416
Зарегистрирован: 02 ноя 2007, 10:31

21 фев 2008, 09:44

Проанализируйте только втрорую десятку.
Температура <37 к счетчику +1, счетчик=10, да-пинуть с койки
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

21 фев 2008, 10:52

airyashov, так не сработает. Допустим, у него была температура ниже 37 два раза в первые 10 дней и 4 раза во вторые. По правилам - его надо выписывать. А по вашей системе - надо оставлять.
Хотя по логике вещей больного с такой динамикой выписывать нельзя.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
airyashov
Сообщения: 416
Зарегистрирован: 02 ноя 2007, 10:31

21 фев 2008, 11:09

Хыиуду писал(а):airyashov, так не сработает. Допустим, у него была температура ниже 37 два раза в первые 10 дней и 4 раза во вторые. По правилам - его надо выписывать. А по вашей системе - надо оставлять.
Хотя по логике вещей больного с такой динамикой выписывать нельзя.
неправильно понял условия, тогда один счетчик только для первой половины суммировать, а для второй вычитать или наоборот
Vicious
Сообщения: 2
Зарегистрирован: 12 янв 2008, 22:41

21 фев 2008, 14:23

Для 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;
}

d1mkoo
Сообщения: 12
Зарегистрирован: 06 фев 2008, 18:58

21 фев 2008, 14:46

спасибо всем огромное.... очень помогло, респект
Ответить