Прочитал, что такая ошибка при делении на ноль, но у меня нет никакого деления, самая простая программа:
#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;
Наверное, return d3; в конце getMax() надо добавить.
В вашем же случае -- getMax(1.0,0.1,1.2) возвращается неизвестно что. Вот при преобразованиях float (тип результата функции) в строку символов внутри cout неприятность и произошла...
У функции getMax есть одна проблема - она иногда может завершаться без return. Что именно она возвратит в этом случае - никто не знает (точнее, что там окажется в регистре процессора или ячейке памяти, как компилятор сделает код).
Так как функция должна найти максимум из трех элементов, то можно воспользоваться функцией max, которую применить дважды:
float getMax(float d1, float d2, float d3)
{
return max(d1, max(d2, d3));
}
Саму функцию max можно взять готовую или просто написать.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости