Массивы в C (установка двойника, равного массиву?
Привет, я пишу серию операторов if, которые определяют, какой набор координат имеет максимальное значение.
У меня есть формула,которая вычисляет максимальное значение z и использует координаты (x, y). Т. е. z= (2*y)+x
это хорошо работает. Затем мне нужно получить его так, чтобы программа сказала мне, какой набор координат она использовала для получения этого значения Z. (есть 3 пары координат).
Координаты даны нам, и я просто хочу, чтобы максимальные координаты были названы новой переменной.
Я не включил весь код, так как он очень длинный, поскольку я делаю там и другие вещи, но я думаю, что дал всю необходимую информацию...
Программа уже успешно рассчитала z0, z1,z2, max
Координаты определяются примерно так в самом начале:
двойной P0 [] = {7,8};
двойной Р1 [] = {2,4};
двойной Р2 [] = {3,2};
Мне просто нужно, чтобы max содержал массив координат, которые дают мне значение для zmax.
Спасибо!!
Что я уже пробовал:
if (zmax==z0){ max=P0[]; } else if (zmax==z1){ max=P1[]; } else { max=P2[]; } printf("ph is %f/n",max[0],max[1]);
НОВАЯ ВЕРСИЯ:
float maxformula (float z0, float z1, float z2, float zmax,float P0[], float P1[], float P2[]); float maxformula (float z0, float z1, float z2, float zmax,float P0[], float P1[], float P2[]){ if (zmax==z0){ printf("zmax is zo"); double max[]={P0[0],P0[1]}; printf("max is %f %f\n", max[0],max[1]); } else if (zmax==z1){ printf("zmax is z1\n"); double max[]={P1[0],P1[1]}; printf("max is %f %f\n", max[0],max[1]); } else if (zmax==z2){ printf("zmax is z2"); double max[]={P2[0],P2[1]}; printf("max is %f %f\n", max[0],max[1]); } }
В основном:
maxformula(z0,z1,z2,zmax,P0,P1,P2);
По какой-то причине дает мне правильные значения, но x и y переворачиваются (так что max[0] - это y max[1] - это x