Найти максимальное среди значений функций, имеющих нечетную целую часть и количество таких значений - C (СИ)
Формулировка задачи:
Найти максимальное среди значений функций, имеющих нечетную целую часть и количество таких значений. Очень нужна помощь в решении этой задачки ... если не сложно, с объяснением пожалуйста
Решение задачи: «Найти максимальное среди значений функций, имеющих нечетную целую часть и количество таких значений»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <memory.h>
#define LEN 1024
typedef struct _FuncVal
{
double x;
double y;
}FVAL;
int main(int argc, char* argv[])
{
FVAL* pFVal = new FVAL[LEN];
memset((void*)pFVal, 0x00, sizeof(FVAL) * LEN);
int d = 0;
while (d < LEN) { pFVal[d].x = -1; pFVal[d].y = -1; d++; }
int i = 0;
for (double x = -0.99; x <= 1; x+=0.01)
pFVal[i++].x = x;
for (int n = 0; pFVal[n].x != -1; n++)
pFVal[n].y = 10 * (1 + tanh(pFVal[n].x));
for (int t = 0; pFVal[t].x != -1; t++)
printf("x = %lf y = %lf\n",pFVal[t].x, pFVal[t].y);
int max = 0;
for (int k = 0; pFVal[k].x != -1; k++)
max = (((int)pFVal[k].y % 2) != 0 &&
pFVal[k].y > pFVal[max].y) ? k : max;
int count = 0;
for (int l = 0; pFVal[l].x != -1; l++)
if ((int)pFVal[l].y == (int)pFVal[max].y) count++;
printf("\nx = %lf y = %lf count = %d\n",pFVal[max].x, pFVal[max].y, count);
_getch();
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Создается массив структур FVAL размером 1024.
- Все элементы массива инициализируются нулевыми значениями.
- В цикле заполняется первая компонента (x) массива структур FVAL значениями от -0.99 до 1 с шагом 0.01.
- Во втором цикле вычисляется вторая компонента (y) каждой структуры FVAL исходя из значения первой компоненты (x) и функции tanh.
- В третьем цикле выводятся значения x и y каждой структуры FVAL на экран.
- В четвертом цикле находится максимальное значение y среди нечетных целых значений y.
- В пятом цикле подсчитывается количество структур FVAL с максимальным значением y.
- Выводятся значения x, y и count на экран.
- В конце программы ожидается нажатие клавиши. Список переменных:
- LEN - размер массива.
- FVAL - структура, описывающая значения функций.
- pFVal - указатель на массив структур FVAL.
- d - счетчик заполнения массива.
- i - счетчик вывода значений функций на экран.
- x - текущее значение первой компоненты структуры FVAL.
- y - текущее значение второй компоненты структуры FVAL.
- max - номер структуры FVAL с максимальным значением y среди нечетных целых значений.
- count - количество структур FVAL с максимальным значением y.