aí eu tive que fazer um programa que que calcula a integral da funcao sqrt(1-x^2) , para isso eu não usei a biblioteca math porque eu escrevi x^2 da forma x*x, então não precisei da biblioteca math.h. O programa quando iniciado perguntao qual é o valor inicial e qual é o final e depois em quatas subdivisoes voce quer que ele faca.  Vou colocar o programa aqui e a biblioteca que eu tinha que usar, que é uma diferente. não é a stdlib.h, é uma biblioteca que eu tenho que usar na facul, vo colocar ela tambem.    #include "iolib.h" //biblioteca que tem que estar na mesma pasta do arquivo.  double f (double x){ return sqrt(1-x*x);    //pra mudar a funcao mude ela aqui }  double integraltrapezio(double x0 , double xn , int n){ int i; double integral=0.0; double dx=(xn*x0)/n ; for ( i=0; i<n ; i++) { double xi=x0+i*dx; double xj=x0+(i+1)*dx ; double area = dx*(f(xi)+f(xj))/2; integral=integral+area; } return integral; }  int main(void){ int n ; double x0 , xn ; double valor ; writestring("Entre com o limited o intervalo( x0 e xn ) : "); x0 = readdouble(); xn = readdouble(); writestring("Entre com o numero de subdivisoe s : "); n = readint(); valor =integraltrapezio(x0, xn, n); writestring("Valor da integral = "); writedouble(valor) ; return 0; } [/codebox]   a iolib.h :   [codebox]/* iolib.h ** Biblioteca auxiliar de entrada e saída ** ICC - PUC-Rio - 2007 */   #ifndef IOLIB_H #define IOLIB_H  #include <stdio.h>  /****************************** ** Funções para leitura de dados entrados via teclado */  /* Captura um valor inteiro */ int readint (void);  /* Captura um valor real (tipo float) */ float readfloat (void);  /* Captura um valor real (tipo double) */ double readdouble (void);  /* Captura um valor de um caractere simples que não seja um 'branco' */ char readchar (void);  /* Captura um valor de um caractere simples, incluindo 'brancos' */ char readanychar (void);  /* Captura um valor de uma cadeia de caracteres, sem espaços 'brancos'.    O segundo parâmetro indica número máximo de caracteres a ser capturado. */ void readword (char s[], int nmax);  /* Captura um valor de uma cadeia de caracteres, até o fim da linha,    incluindo caracteres 'brancos'.     O segundo parâmetro indica número máximo de caracteres a ser capturado. */ void readline (char s[], int nmax);   /****************************** ** Funções para escrita de dados na tela */  /* Escreve um valor inteiro */ void writeint (int x);  /* Escreve um valor real (tipo float) */ void writefloat (float x);  /* Escreve um valor real (tipo double) */ void writedouble (double x);  /* Escreve um caractere simples */ void writechar (char x);  /* Escreve uma cadeia de caracteres (sem pular linha) */ void writestring (char s[]);  /* Escreve uma linha de texto (acrescenta caractere de mudança de linha) */ void writeline (char s[]);  /* Escreve um caractere de mudança de linha (pula linha) */ void newline (void);   /**************************** ** Funções de entrada e saída para arquivos */  /* Tipo que representa um arquivo */ typedef FILE* FHANDLE;  /* Abre um arquivo para leitura, dado o nome do arquivo.    Se ocorrer erro na abertura do arquivo, o programa é abortado. */ FHANDLE fopenreadfile (char filename[]);  /* Abre um arquivo para escrita, dado o nome do arquivo.    Se ocorrer erro na abertura do arquivo, o programa é abortado. */ FHANDLE fopenwritefile (char filename[]);  /* Fecha um arquivo previamente aberto */ void fclosefile (FHANDLE f);  /* Verifica se o final do arquivo foi alcançado, desprezando    eventuais caracteres 'brancos'  */ int fisend (FHANDLE f);  /* Captura próximo valor inteiro do arquivo */ int freadint (FHANDLE f);  /* Captura próximo valor real (tipo float) do arquivo */ float freadfloat (FHANDLE f);  /* Captura próximo valor real (tipo double) do arquivo */ double freaddouble (FHANDLE f);  /* Captura o próximo caractere simples do arquivo,     desprezando eventuais 'brancos' */ char freadchar (FHANDLE f);  /* Captura o próximo caractere simples do arquivo,    incluindo eventuais 'brancos' */ char freadanychar (FHANDLE f);  /* Captura próxima cadeia de caracteres sem 'brancos' do arquivo    O terceiro parâmetro indica número máximo de caracteres a ser capturado. */ void freadword (FHANDLE f, char s[], int nmax);  /* Captura próxima cadeia de caracteres do arquivo, até o fim da linha.    O terceiro parâmetro indica número máximo de caracteres a ser capturado. */ void freadline (FHANDLE f, char s[], int nmax);  /* Escreve valor inteiro no arquivo */ void fwriteint (FHANDLE f, int x);  /* Escreve valor real (tipo float) no arquivo */ void fwritefloat (FHANDLE f, float x);  /* Escreve valor real (tipo double) no arquivo */ void fwritedouble (FHANDLE f, double x);  /* Escreve caractere simples no arquivo */ void fwritechar (FHANDLE f, char x);  /* Escreve cadeia de caracteres no arquivo */ void fwritestring (FHANDLE f, char s[]);  /* Escreve caractere de nova linha no arquivo (muda de linha) */ void fnewline (FHANDLE f);  #endif   agora para ela funcionar voce tem que colocar o arquivo iolib.c no mesmo projeto que o arquivo integrais.c,  ai vai a iolib.c :   /* iolib.c ** Biblioteca auxiliar de entrada e saída ** ICC - PUC-Rio - 2007 */  #include "iolib.h" #include <stdlib.h>  int readint (void) {   return freadint(stdin); }  float readfloat (void) {   return freadfloat(stdin); }  double readdouble (void) {   return freaddouble(stdin); }  char readchar (void) {   return freadchar(stdin); }  char readanychar (void) {   return freadanychar(stdin); }  void readword (char s[], int nmax) {   freadword(stdin,s,nmax); }  void readline (char s[], int nmax) {   freadline(stdin,s,nmax); }  void writechar (char x) {   fwritechar(stdout,x); }  void writeint (int x) {   fwriteint(stdout,x);   newline(); }  void writefloat (float x) {   fwritefloat(stdout,x);   newline(); }  void writedouble (double x) {   fwritedouble(stdout,x);   newline(); }  void writestring (char s[]) {   fwritestring(stdout,s); }  void writeline (char s[]) {   writestring(s);   newline(); }  void newline (void) {   fnewline(stdout); }  FHANDLE fopenreadfile (char filename[]) {   FHANDLE f = fopen(filename,"rt");   if (f == NULL) {     fprintf(stderr,"Erro na abertura do arquivo de leitura: %s\n",filename);     exit(1);   }   return f;  }  FHANDLE fopenwritefile (char filename[]) {   FHANDLE f = fopen(filename,"wt");   if (f == NULL) {     fprintf(stderr,"Erro na abertura do arquivo de escrita: %s\n",filename);     exit(1);   }   return f;  }  void fclosefile (FHANDLE f) {   fclose(f); }  int fisend (FHANDLE f) {   char c;   if (fscanf(f," %c",&c)!=1)     return 1;   ungetc(c,f);   return 0; }  char freadchar (FHANDLE f) {   char v;   if (fscanf(f," %c",&v) != 1) {     fprintf(stderr,"Erro na leitura do 'char'.\n");     exit(1);   }   return v; }  char freadanychar (FHANDLE f) {   char v;   if (fscanf(f,"%c",&v) != 1) {     fprintf(stderr,"Erro na leitura do 'char'.\n");     exit(1);   }   return v; }  int freadint (FHANDLE f) {   int v;   if (fscanf(f,"%d",&v) != 1) {     fprintf(stderr,"Erro na leitura do 'int'.\n");     exit(1);   }   return v; }  float freadfloat (FHANDLE f) {   float v;   if (fscanf(f,"%g",&v) != 1) {     fprintf(stderr,"Erro na leitura do 'float'.\n");     exit(1);   }   return v; }  double freaddouble (FHANDLE f) {   double v;   if (fscanf(f,"%lg",&v) != 1) {     fprintf(stderr,"Erro na leitura do 'double'.\n");     exit(1);   }   return v; }  void freadword (FHANDLE f, char s[], int nmax) {   char fmt[BUFSIZ];   sprintf(fmt,"%%%ds",nmax-1);   if (fscanf(f,fmt,s) != 1) {     fprintf(stderr,"Erro na leitura do 'string'.\n");     exit(1);   } }  void freadline (FHANDLE f, char s[], int nmax) {   char fmt[BUFSIZ];   sprintf(fmt," %%%d[^\n]%%1*[\n]",nmax-1);   if (fscanf(f,fmt,s) != 1) {     fprintf(stderr,"Erro na leitura do 'string'.\n");     exit(1);   } }  void fwritechar (FHANDLE f, char x) {   fprintf(f,"%c",x); }  void fwriteint (FHANDLE f, int x) {   fprintf(f,"%d ",x); }  void fwritefloat (FHANDLE f, float x) {   fprintf(f,"%.20g ",x); }  void fwritedouble (FHANDLE f, double x) {   fprintf(f,"%.20g ",x); }  void fwritestring (FHANDLE f, char s[]) {   fprintf(f,"%s ",s); }  void fwriteline (FHANDLE f, char s[]) {   fwritestring(f,s);   fnewline(f); }  void fnewline (FHANDLE f) {   fprintf(f,"\n"); }  [/codebox]  Po é isso, espero que eu tenha ajudado... ;)   Falow