LINUX.ORG.RU

не компилируется программа


0

0

Здравствуйте, есть программа вычисления интеграла. Под виндоус она компилируется и работает, а в линукс не компилируется. Ткните носом пожайлуста. 

#include<stdio.h>  
#include<math.h>  
#include<ncurses.h>  
  
double func(double x)  
{  
    return (x*x*x) + 2*(x*x) - 3*x -8;  
}  
  
double trap(double a,double b,double eps,double(*func)(double))  
{  
  double h,s,s0,s1,sn;   
  int i,n, sz;   
  
  s=1;  
  sn=101;  
  n=4;  
 
  s0 = (func(a) + func(b))/2;  
  s1=func((a+b)/2);  
 
  while(fabs(s-sn) > eps)  
  {  
    sn = s;  
    h = (b-a)/n;  
 
 
    sz = n >> 1; 
    for(i = 0; i < sz; i++) 
    { 
      s1+= func(a+(2*i+1)*h);  
    } 
  
    s = h * (s0 + s1);  
    n = n << 1;   
  } 
  
  return s;  
}  
  
int main()  
{  
  double a,b,er,eps,s;  
 
  clrscr();  
  printf("\n Задайте пределы интегрирования и точность: ");   
  scanf ("%G%G%G",&a,&b,&eps);  
 
  s = trap(a,b,eps,&func);  
 
  printf("\n Интеграл от a=%3.2lf до b=%3.2lf равен %lf",a,b,s);  
  getch();  
} 
anonymous

Хоть бы написал, какую ошибку выдает.

anonymous
()

во первых, ncurses - это не просто подключение заголовочного файла, но еще и библиотеки ncurses. во вторых, я не знаток ncurses, но вроде там clrscr() отсутствует?

Vinill ★★
()

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

$ gcc test-1.c -ncurses

А clrscr(); заверни в препоцессорные ифы для винды :)

Selecter ★★★★
()
Ответ на: комментарий от Vinill

ну clrscr - я просто убрать забыл когда тему создавал. можно и getch(); вместе с #include <ncurses.h> 
убрать тоже. и тогда выдает вот что:
/tmp/ccwg9jck.0(.eh_frame+0x11): undefined reference to '__gxx_personality_v0'
collect2: ld returned 1 exit status

Я так понимаю, что какой то библиотеки нехватает. вот только не знаю какой

anonymous
()
Ответ на: комментарий от anonymous

Спасибо. Ребята, я реально ступил с gcc. с g++ все заработало и если файл его просто в .c переименовать то gcc integral.c -o proga тоже работает. Сорри за тупой вопрос!

anonymous
()

Для double надо использовать не %G, а %lG.

ero-sennin ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.