-1.#IND без деления на 0

292
15 декабря 2016, 16:09

Прочитал, что такая ошибка при делении на ноль, но у меня нет никакого деления, самая простая программа:

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
float getMax(float d1, float d2, float d3)
{
    if (d1 < d2)
    {
        if (d2 < d3) return d3;
        else return d2;
    }
    if (d1 > d3) return d1;
}
int _tmain(int argc, _TCHAR* argv[])
{
    int arr[3][3] = {};
    double x1[100], x2[100], x3[100],d1(0),d2(0),d3(0),e;
    x1[0] = 0;
    x2[0] = 0;
    x3[0] = 0;
    cout<<getMax(1.0,0.1,1.2);
    cin.get();
    return 0;
Answer 1

Наверное, return d3; в конце getMax() надо добавить.

В вашем же случае -- getMax(1.0,0.1,1.2) возвращается неизвестно что. Вот при преобразованиях float (тип результата функции) в строку символов внутри cout неприятность и произошла...

Answer 2

У функции getMax есть одна проблема - она иногда может завершаться без return. Что именно она возвратит в этом случае - никто не знает (точнее, что там окажется в регистре процессора или ячейке памяти, как компилятор сделает код).

Так как функция должна найти максимум из трех элементов, то можно воспользоваться функцией max, которую применить дважды:

float getMax(float d1, float d2, float d3)
{
    return max(d1, max(d2, d3));
}

Саму функцию max можно взять готовую или просто написать.

READ ALSO
Как вызвать функцию из строки?

Как вызвать функцию из строки?

Есть много функций с одинаковым именем и разной цифрой в конце этого имени, то есть function1, function2, function3 и тд

264
Перегрузка метода абстрактного класса

Перегрузка метода абстрактного класса

Не знаю правильно ли я назвал вопрос, но ситуация такаяЕсть класс Parent:

253
МНК алгоритм

МНК алгоритм

Метод наименьших квадратов

257
Передача параметров в слот

Передача параметров в слот

Всем доброго времени суток

227