Значения двух функций, равномерно распределенных в диапазоне - C (СИ)
Формулировка задачи:
Задание. Вычислить значения двух функций в n равномерно распределенных в диапазоне а≤x≤b точках. Сформировать результаты таким образом, чтобы значения X, F1 и F2 были представлены двумерным массивом, состоящим из трех строк.
Моя программа:
Программа работает, но на экране мы видим уж очень "извращенную" матрицу. Подскажите, пожалуйста, что не так?
#include <stdio.h> #include <conio.h> #include <math.h> #include <locale.h> int main() { setlocale(LC_ALL, "RUS"); double x, dx, a = 1, b = 3; double A[3][12]; int i, j, n; printf("Введите число точек \n"); scanf_s("%d", &n); dx = fabs(b - a) / (n - 1); x = a; for (j = 0; j < n; j++) { A[1][j] = x; A[2][j] = x*log(x)*log(x); A[3][j] = sqrt(exp(x) - 1); x = x + dx; } for (j = 0; j < n; j++) { printf(" A[%d]=%.2lf\t", A[1][j]); printf(" A[%d]=%.2lf\t", A[2][j]); printf(" A[%d]=%.2lf\n", A[3][j]); } _getch(); return 0; }
Решение задачи: «Значения двух функций, равномерно распределенных в диапазоне»
textual
Листинг программы
#include <stdio.h> #include <conio.h> #include <math.h> #include <locale.h> void print_arr(char *s, double *A, int n) { int j; printf("| %s |", s); for (j = 0; j < n; j++) { printf(" %.2lf |", A[j]); } printf("\n"); for (j = 0;j < 7 + n * 9;j++) putchar('-'); puts(""); } int main() { setlocale(LC_ALL, "RUS"); double x, dx, a = 1, b = 3; double A[3][12]; int i, j, n; printf("Введите число точек: "); scanf_s("%d", &n); dx = fabs(b - a) / (n - 1); x = a; for (j = 0; j < n; j++) { A[0][j] = x; A[1][j] = x*log(x)*log(x); A[2][j] = sqrt(exp(x) - 1); x = x + dx; } for (j = 0;j < 7 + n * 9;j++) putchar('-'); puts(""); print_arr("X ", A[0], n); print_arr("F1", A[1], n); print_arr("F2", A[2], n); _getch(); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д