Не компилируется код вычисления факториала - C (СИ)
Формулировка задачи:
Добрый вечер
Вот собственно код
Подчеркивает первую строку,убираю .h
Начинает подчеркивать 27
Подскажите,как исправить?
#include<iostream.h> #include<stdlib.h> #include<conio.h> #include<math.h> #include<stdio.h> const float x[11]={0.101, 0.106, 0.111, 0.116, 0.121, 0.126, 0.131, 0.136, 0.141, 0.146, 0.151};/*данные х*/ const float y[11]={0.26183,0.27644,0.29122,0.30617,0.32130,0.33660,0.35207,0.36773,0.38357,0.39959,0.41579};/*данные у*/ const int N=11; const float h=0.05;/*шаг*/ const float X[4]={0.1035, 0.1492, 0.096, 0.153};/*данные Х*/ float dy0[12][12];/*база сохранения значений разностей*/ long fac(int i) /*подсчет факториала*/ { if(i==1||i==0) return 1; return fac(i-1)*i; } float delta(int k) /*разность к-ого порядка*/ { return dy0[0][k]; } void matrix() /*вывод разностей*/ { int p=11; for(int i=0;i<11;i++) {dy0[i][0]=y[i];} for(int j=1; j<12;j++) { printf("%d\n ",j);/*номер строки*/ for(i=0; i<p; i++) { dy0[i][j]=dy0[i+1][j-1]-dy0[i][j-1]; printf("%3.5f|",dy0[i][j]); } printf("\n\n"); p--; } } float a(int k)/*подсчет разностей*/ { float A; A=delta(k)/fac(k)/pow(h,k); return A; } float result(int r) /*многочлен Ньютона*/ { float n=0,p=1; for(int i=0; i<N;i++) { p=1; for(int j=0; j<i;j++) { p*=(X[r]-x[j]); } n+=p*a(i); } return n; } int main() { printf("\n Newton Method\n"); printf(" x"); printf(" y"); printf("\n\n"); for(int j=0;j<11;j++) { printf("\n"); printf("%3.3f ",x[j]); printf("%f ",y[j]); } getch(); printf("\n\nTablica raznostey:\n\n"); matrix(); for(int i=0; i<4;i++) { printf("\n x=%1.4f y=%f",X[i],result(i)); } getch(); return 0; }
Решение задачи: «Не компилируется код вычисления факториала»
textual
Листинг программы
#include <stdlib.h> #include <math.h> #include <stdio.h> float result(int r); float a(int k); float delta (int k); long fac(int i); void matrix( void ); const float x[11] = {0.101, 0.106, 0.111, 0.116, 0.121, 0.126, 0.131, 0.136, 0.141, 0.146, 0.151};/*данные х*/ const float y[11] = {0.26183,0.27644,0.29122,0.30617,0.32130,0.33660,0.35207,0.36773,0.38357,0.39959,0.41579};/*данные у*/ const int N = 11; const float h=0.05; /*шаг*/ const float X[4] = {0.1035, 0.1492, 0.096, 0.153}; /*данные Х*/ float dy0[12][12]; /*база сохранения значений разностей*/ int main ( void ) { int j, i; printf("\n Newton Method\n"); printf(" x"); printf(" y"); printf("\n\n"); for (j = 0; j < 11; j++) { printf("\n"); printf("%3.3f ",x[j]); printf("%f ",y[j]); } getchar(); printf("\n\nTablica raznostey:\n\n"); matrix(); for (i = 0; i < 4; i++) { printf("\n x=%1.4f y=%f",X[i],result(i)); } getchar(); return 0; } float result(int r) /*многочлен Ньютона*/ { float n = 0, p = 1; int j, i; for(i = 0; i < n; i++) { p = 1; for (j = 0; j < i; j++) { p *= (X[r] - x[j]); } n += p * a(i); } return n; } float a(int k) /*подсчет разностей*/ { float a; a = delta(k)/fac(k)/pow(h,k); return a; } float delta (int k) /*разность к-ого порядка*/ { return dy0[0][k]; } long fac(int i) /*подсчет факториала*/ { if(i==1||i==0) return 1; return fac(i-1)*i; } void matrix( void ) /*вывод разностей*/ { int p = 11, i, j; for (i = 0; i < 11; i++) { dy0[i][0]=y[i]; } for (j = 1; j < 12; j++) { printf("%d\n ",j); /*номер строки*/ for(i = 0; i < p; i++) { dy0[i][j] = dy0[i+1][j-1] - dy0[i][j-1]; printf("%3.5f|",dy0[i][j]); } printf("\n\n"); p--; } return; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы: stdlib.h, math.h, printf.h
- Объявляются функции: result(int r), a(int k), delta(int k), fac(int i), matrix()
- Объявляются константы: N, h, X[4], x[11], y[11]
- Создается массив dy0[12][12] для хранения разностей
- В функции main() вычисляется и выводится факториал числа с помощью функции fac(int i)
- В цикле for выводятся значения x[j] и y[j] для j от 0 до 10
- Вызывается функция matrix(), которая выводит разности в виде матрицы
- В функции result(int r) вычисляется значение многочлена Ньютона
- В функции a(int k) вычисляется значение разности k-го порядка
- В функции delta(int k) вычисляется значение разности k-го порядка
- В функции fac(int i) вычисляется значение факториала числа i
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д