Форум программистов, компьютерный форум, киберфорум
C (Си)
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 02.03.2018
Сообщений: 11
1

Почему у меня значение x всегда равно 0 и как его изменить?

29.09.2018, 20:44. Просмотров 380. Ответов 4

Собственно вот моя программа и икс тут не меняется в чем проблема?я ни как не могу подставить разные значения икса?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include "stdio.h"
#include "math.h"
#include "windows.h"
#include "assert.h"
const float eps = 0.01;     //ограничение для ряда
 
float funct_1(float x)      //функция e^x
{
    return pow(2.71828, x);
}
int fact(int n)             //функция, высчитывающая факториал
{
    if(n==0) return 1;
    if(n==1) return 1;
    return fact(n-1)*n;
}
float range(float x, int n)     //функция, высчитывающая значение 
                                //ряда при определенном x, n
{
    return pow(x, n)/fact(n);
}
 
float funct_2(float x, int n)//функция-разложение в ряд (рекурсивная)
{
    float res=0;        //переменная, в которую записывается сумма при
                        //каждом n
    if (range(x, n)>eps)//ограничение по eps
    {
        res=range(x, n);
#ifdef  DEBUG
    printf("range = %10f, x=%f, n=%i\n", range(x, n), x, n);
#endif
        n++;            //n увеличивается и вновь вызывается функция
        return res+funct_2(x, n);
    }
    return res; 
}
main()
{
    system("cls");
    float i, t=0, a[10],b[10];      //массивы, в которые записываются значение функций
    float x;
    int j, n=0;
    printf("|    x     |    e^    |   range  |\n"); //шапка таблицы
    printf("|__________|__________|__________|\n");
    for(x=0, j=0; x<1; x+=0.1, j++)         //оснвной цикл, высчитывающий две функции
    {
        b[j]=funct_2(x, n);     //вычисление в ряду
        a[j]=funct_1(x);        //вычисление e^x
        t+=fabs(b[j]-a[j]);
        printf("|%10f|%10f|%10f|\n", i, a[j], b[j]);
        printf("|__________|__________|__________|\n");
    }
    printf("Average accurancy %f", t/10);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2018, 20:44
Ответы с готовыми решениями:

Почему в письме отправленном в python всегда имя: MAILER-DAEMON? как изменить его?
Как его изменить? import smtplib import itertools from email.mime.text import MIMEText from...

Почему произведение всегда равно 0?
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; int main() { setlocale(LC_ALL,...

Как сделать чтобы значение переменной было ВСЕГДА равно тому, что написано в textbox'e?
вопрос в заголовке

Почему рандомное число всегда равно 22?
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; int main () { // нужны две...

4
Эксперт C
24151 / 14862 / 3134
Регистрация: 24.12.2010
Сообщений: 31,803
29.09.2018, 21:48 2
Цитата Сообщение от Nik174rus Посмотреть сообщение
икс тут не меняется в чем проблема?
Где, что и почему он должен меняться?
Нелепости, конечно, в программе есть. Но хотелось бы более осмысленного опроса...
0
151 / 143 / 87
Регистрация: 13.06.2018
Сообщений: 625
30.09.2018, 10:16 3
Цитата Сообщение от Nik174rus Посмотреть сообщение
printf("|%10f|%10f|%10f|\n", i, a[j], b[j]);
i тут чем занимается?
0
0 / 0 / 0
Регистрация: 02.03.2018
Сообщений: 11
30.09.2018, 13:26  [ТС] 4
Ну моя функция высчитывается по значению 0, но если я изменю i то x тоже изменится ,но значение e^ и range у меня не изменятся

Добавлено через 1 минуту
Ну я могу присвоить ему значение 2 или 3 но функция e^ и range все равно не изменит значения,как мне сделать так чтобы x принимал разные значения
0
404 / 192 / 40
Регистрация: 21.09.2008
Сообщений: 661
05.10.2018, 10:46 5
Цитата Сообщение от Nik174rus Посмотреть сообщение
C
1
for(x=0, j=0; x<1; x+=0.1, j++)
Может быть так попробовать?
C
1
for(x=0.0, j=0; x<1.0; x+=0.1, j++)
В теле цикле gcc ругался на 51-ю строку, где переменная i не инициализирована. Возможно, это описка и там должно быть значение переменной x?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.10.2018, 10:46

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Элементарный математический код, но почему то всегда равно 0,0000
Элементарный математический код, но почему то всегда равно 0,0000. Тут я еще использую старые...

Значение RSAParameters.Exponent всегда равно 65537?
Я пишу приложение (клиент и сервер под Windows), которое обменивается открытыми ключами. Как...

Флаг failbit для перенаправления строкового потока; почему он всегда у меня поднят?
#include &lt;windows.h&gt; #include &lt;stdio.h&gt; #include &lt;sstream&gt; using namespace std; int main()...

Почему у меня в цикле всегда выводится 00000, даже если такой буквы нет
Цикл(помогите его изменить): for( String bukva = &quot;а&quot;;;){ ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.