А попробуй
...
double FI_rad;
FI_rad=gen();
...
А попробуй
...
double FI_rad;
FI_rad=gen();
...
В mehtod() будет выделена ячейка памяти под именем FI_rad и в нее будет помещено значени, которое будет вычесленов gen()
Могешь объявить глобально, при этом возвращать из gen() ничего не надо.
А при чем тут cout?
Последний раз редактировалось Novosel2000; 14.12.2006 в 22:07.
И у меня вопросик по Си...
Что не правильно?
#include <stdio.h>
main()
{
int k,i,n;
float y[10],x[10];
float h, S,a,b;
printf("введите интервал [a,b]\n");
scanf("%d%d",&a,&b);
n=10;
k=4;
h=(b-a)/n;
for (i=0; i<=n;i++)
{
x[i]=a+i*h;
y[i]=x[i]*x[i];
};
S=y[0]-y[n];
for (i=1; i<=n;i++)
{
S=S+k*y[i];
k=6-k;
};
S=S*h/3;
printf("Интеграл равен ",S);
}
Последний раз редактировалось Elg; 15.12.2006 в 17:20.
Для for ( ) после { } ; не ставиться вроде. . Компилятор должен выдавать ошибку на наличие лишних ;
Последний раз редактировалось KLINED; 15.12.2006 в 16:51.
нет, здесь все правильно. компилятор ошибок не выдает. программа просто не считает. :(
Я в саму задачу не вникаю, смотрю по коду.
S=S+k*y[i] Вот это, довольно таки интересный момент. Если y этой i-ый вектор, т.е вектор размерности i. То результат S никак не может быть числовой константой. Должно быть нечто вроде S[i], как то так. Потому что при действиях ( +, -, *, = ) с матрицами/векторами, результат всегда вектор/матрица.
И тут же. k типа int, а S типа float. Не совпадение типов данных, надо приведение типов писать. Или все делать одним типом float кроме i. Хотя для математики, тип float плох у него точность 3-и или 2-а знака после запятой, лучше double использовать.
Последний раз редактировалось KLINED; 15.12.2006 в 17:47.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)