Помогите криворукому нубу

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
fivepointsgang
Сообщения: 3
Зарегистрирован: 21 ноя 2013, 13:44

Учусь в универе, учат немного кодить, в общем надо заделать таблицу из аргументов и значений функции, шаг тоже найти, указывается х-начальное, х-конечное.
Вот мой первый вариант (указаны выдаваемые ошибки):

Код: Выделить всё

#include <stdio.h>
#include <math.h>
#include <conio.h>
int main()
{
float f,a,b,x,o,k,n,d,r;
r=0;
printf ("input x0,xk and n\n");
scanf ("%f%f%f",&o,&k,&n);
k-o/n=d;//-Lvalue required
do{
   r=r++;
   x=k+d;
   printf("%f\n",r);
   f=pow(pow(exp,a*x-b*sin(x)),1/3);
   printf("f(x)=%f,",f); //-type mysmatch in parameter '__x' in call to 'pow'
   }                                          
while (x<=n);
}//-function should return a value
Я не знаю как их исправить, помогите пожалуйста
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

exp это не константа, а функция.
pow(E, X) = exp(X), соответственно pow(exp,a*x-b*sin(x)) => exp(a*x-b*sin(x))
k-o/n=d;-Lvalue required
В левой части выражение, которое не имеет определенного адреса, соответственно присвоить ему значение нельзя.
Возможно имелось ввиду d=k-o/n
It's a long way to the top if you wanna rock'n'roll
fivepointsgang
Сообщения: 3
Зарегистрирован: 21 ноя 2013, 13:44

somewhere писал(а):exp это не константа, а функция.
pow(E, X) = exp(X), соответственно pow(exp,a*x-b*sin(x)) => exp(a*x-b*sin(x))

В левой части выражение, которое не имеет определенного адреса, соответственно присвоить ему значение нельзя.
Возможно имелось ввиду d=k-o/n

Спасибо, помогло. Почти разобрался, вот так теперь основная часть выглядит:

Код: Выделить всё

do{
   r=r++;
   if(r<2) x=o;
   if(r>=2) x=x+d;
   f=pow(exp(a*x-b*sin(x)),1/3);
   printf(" ------------------ \n");
   printf("| %1.0f | %3.2f | %3.2f  |\n",r,x,f);
   }
while (r<=n-1);
Почему-то всегда выдает одинаковые почему-то в f всегда выдает 1
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Ну, цикл просто-таки напрашивается сделать с параметром:
for (r=0; r<n; r++) { /*тут весь остальной цикл*/}
И проверьте, чему равно d, сильно подозреваю, что 0
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
fivepointsgang
Сообщения: 3
Зарегистрирован: 21 ноя 2013, 13:44

Хыиуду писал(а):Ну, цикл просто-таки напрашивается сделать с параметром:
for (r=0; r<n; r++) { /*тут весь остальной цикл*/}
И проверьте, чему равно d, сильно подозреваю, что 0

сделать-то надо было как раз с циклом do, задание такое, вообще я уже тут разобрался, но все равно спасибо
Ответить