Помощь - Поиск - Пользователи - Календарь
Полная версия: С++ нахождения площади и периметра треугольника по координатам > Информатика / Программирование
Образовательный студенческий форум > Другие дисциплины > Информатика / Программирование
Страницы: 1, 2
Vahappaday
return (sym/s); - опять то же самое)) Результат-то будет типа double) Но средним значением чисел {1, 1, 2} будет 1.0

Не созданы функции для отдельного нахождения минимума и максимума.
В функции MaxMin цикл не обязательно гонять два раза. Всё это можно проделать и в одном цикле.
По той же функциями. Инициализация нулями min и max не верна. Например, у Вас будет массив {-1,-2,-3}.
И что, максимальный элемент у него 0? Именно так будет считать такой алгоритм. А индекс будет вообще не инициализирован. Это же замечание касается и min.

a[imax]=a[imin]; - уж написали бы =min ))) Хотя... в принципе ошибки не вижу. Но тогда никакой временной переменной не надо.

cout<<"Srednee zna4enie="<<Sred; - какие ужасы))) Что за Sred? Как же это Вы используете идентификатор функции без параметров.

return 1; - Ваше право, но корректно завершившееся приложение в Windows обычно имеет код возврата 0.
InFuz
Результат-то будет типа double ну так и функция типа double
отдельного нахождения это не пренципиально
вообще я хотел узнать в чем ошибка мешающая работе, а не косметический ремонт smile.gif
компилятор говорит что все гуд, но когда запускаешь, (пускай даже без отрец. знач. вообще) она начинает на что-ругаться. huh.gif
Vahappaday
Советую повнимательнее взглянуть сюда:
return (sym/s); - опять то же самое)) Результат-то будет типа double) Но средним значением чисел {1, 1, 2} будет 1.0

Проблема не в типе. Тип как раз верный. А вот результат вычислений косячный. У Вас будет целочисленное деление, а затем приведение к типу double. Тип правильный, а результат косячный.

Почему ругается, я тоже сказал.
max=0 и min=0.
Если у Вас нет отрицательных значений, то как раз и будут проблемы. У вас не встретится ни одного числа, которое бы удовлетворяло условию:
Код

if(a[i]<min)
{
    imin=i;
    min=a[i];
}

В итоге imin останется непроинициализированным. А Вы к нему таки обратитесь в конце.

Моё конструктивное предложение:
int imin=0, imax=0, min=a[0], max=a[0];

Я обычно делаю так.
InFuz
Все, готово, кое как своими кривыми ручонками отладил. laugh.gif
Спасибо, чтобы без вас делал, не знаю. thumbsup.gif
Vahappaday
А с делением поправили?)))
Косячить ведь будет)
InFuz
так точно! сделал еще печать в самой процедуре.

Код
    void Sred(int *a, int I, int I2)
    {
      int i,s=0,sym=0;
      double b;
      for(i=I+1; i<I2; i++)
      {
    sym=sym+a[i];
    s++;
      }
      b=(double)sym/s;
      cout<<"Srednee zna4enie="<<b;
    }


Хотел еще спросить, что значит linker warning:no module definition file specified: using defaults
в принципе это не ошибка и работе не мешает просто хотел узнать, что она мне хочет сказать.
Vahappaday
Если честно, не в курсе, это чисто борландовое предупреждение... Говорят, помогает пересоздание проекта, его перемешение или что-то типа того.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.