Занести в массив значения функции и вывести его на экран - C (СИ)
Формулировка задачи:
Подскажите, пожалуйста!
Двумерный массив:
Занести в массив значения функции f (x, y) = 1/((x − y)2 +1) , 0 ≤ x ≤ 5 , 0 ≤ y ≤ 10 и вывести его на экран.Решение задачи: «Занести в массив значения функции и вывести его на экран»
textual
Листинг программы
#include <cstdio> // если файл С(например - program.c) то stdio.h
#include <cstdlib> // и stdlib.h
#include <cmath>
int main()
{
double **a;
int i, j, x, y;
x = 6;
y = 11;
/*=== allocate memory ===*/
a = (double**)malloc(sizeof(double*) * x);
for (i = 0; i < x; i++)
a[i] = (double*)malloc(sizeof(double) * y);
/*=== input ===*/
double temp;
for (i = 0; i < x; i++)
for (j = 0; j < y; j++)
{
temp = pow(i - j, 2) + 1;
a[i][j] = 1.0 / temp;
}
/*=== output ===*/
for (i = 0; i < x; i++)
{
for (j = 0; j < y - 1; j++)
printf("%.4f ", a[i][j]);
printf("%.4f\n", a[i][y - 1]);
}
/*=== free memory ===*/
for (i = 0; i < x; i++)
a[i] = (double*)realloc(a[i], 0);
a = (double**)realloc(a, 0);
system("pause");
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с массивами, математикой и вводом-выводом
- Объявляем переменные: массив a, целочисленные переменные i, j, x, y и double temp
- Задаем значения переменным x и y
- Выделяем память под массив a и заполняем его значениями с помощью цикла for
- Вводим значения в массив a с помощью циклов for и формулы temp = pow(i-j,2)+1
- Выводим значения массива a на экран с помощью циклов for и функции printf
- Освобождаем память, выделенную под массив a, с помощью функций realloc и free