Oi, tenho um problema neste codigo. Queria que a função Fracio24Q enviasse 24 resultados para um vector... mas não estou a conseguir alguém me pode ajudar?   #include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <math.h>
#include <windows.h>
#include <sys/param.h>
#include <dirent.h>
//#include <sys/dir.h>
//Funçoes
void FMatriz(FILE *fp, int matriz[][20]);
double FRacio24Q(int matriz[][20], double *quad);
void Resultados (FILE *fr, char *fp, double r24q[], char *pathname);
//Funçao Principal
int main(int argc, char *argv[])
{
    FILE *fp, *fname2;
    DIR *dirp;
    char pathname[MAXPATHLEN],filename[MAXPATHLEN], nomef[128];
    struct dirent *entrada;
    int matriz[30][20];
    double r24q[24], valor[24];
    int i;
    
          //Escolha da directoria
        printf("Directoria dos ficheiros?\n");
        fgets(pathname,MAXPATHLEN,stdin);
        
        if(pathname[strlen(pathname)-1]=='\n')
        {
           pathname[strlen(pathname)-1]='';
        }
        
        if((dirp=opendir(pathname))==NULL)
        {
           printf("Erro ao abrir directoria\n");
           exit(1);
        }
        
        //Procurar ficheiros da directoria 
        while((entrada=readdir(dirp))!=NULL)
        {
                                            
        //Filtragem
        if(strcmp(entrada->d_name,".")==0 || (strcmp(entrada->d_name,"..")==0))
        {
            continue;
        }
        
        //Abrir Ficheiro
        sprintf(filename,"%s\\%s",pathname,entrada->d_name);
        fp = fopen(filename,"r");
    
        if(fp==NULL)
        {
            printf("Erro na abertura do ficheiro \n");
        }
        //Mostra o nome do ficheiro
        printf("\nFicheiro: %s\\%s aberto  \n",pathname,entrada->d_name);    
        //chamamento de funçoes
        FMatriz(fp, matriz);
        for(i=0; i<24; i++)
        {
                 r24q[i]=FRacio24Q(matriz, valor);
        }
        Resultados(fopen("vector.txt","a"), entrada->d_name, r24q, pathname);
        fflush(stdin);
      
        free(filename);
        fclose(fp);   
        }
    getchar();    
}
// Escrever Matriz
void FMatriz(FILE *fp, int matriz[][20]){
    
    FILE *fname2;
    int i=0,j=0;
    char num, nomef[128];    
    
    num = fgetc(fp);  //Ler um caracter a partir de um fluxo
    
    //fprintf(fname2, nomef);
    while(num!=EOF) //Enquanto não chegar ao fim do ficheiro
    { 
        if(num == '0') 
        {
               matriz[i][j]=0; 
               j++; //incrementa coluna (j)
                    
               if(j==20) //se a coluna é a ultima passa para a linha de baixo (incrementa i e j passa a 0)
               {
                    i++;
                    j=0;
               }
        }
             
        //Senao, o num é '1', preenche na matriz a posiçao
        if(num == '1')
        {
               matriz[i][j]=1; 
               j++; //incrementa coluna (j)
                    
               if(j==20) //se a coluna é a ultima passa para a linha de baixo (incrementa i e j passa a 0)
               {
                    i++;
                    j=0;
               }
        } 
                 
             //Voltar a ler o valor   
        num = fgetc(fp);     
    }
    
    for (i=0; i<30; i++)
        { 
            for (j=0; j<20; j++) 
            {
                //Imprimir matriz no ecra
                printf ("%d", matriz[i][j]);
            }
            //mudança de linha
            printf("\n");
        } 
    fclose(fp);
}
double FRacio24Q(int matriz[][20], double *quad){
       double cont1=0, cont2=0;
       int i=0, j=0, c=0;
       int lin_i=0;
       int lin_f=5;
       int col_i=0;
       int col_f=5;
       int cont3=0;
       
       printf("\n\nEm 24 Quadrantes\n");
       
       for(i=0; i<24; i++){
                quad[i]=0;
       }
       
       while(lin_f<=30){
          while(col_f<=20){
             for(i=lin_i; i<lin_f; i++){          
                 for(j=col_i; j<col_f; j++){
                     //Conta 1s e 0s na matriz
                     if((matriz[i][j])==1)
                     {
                         cont1++;
                     }
                     if((matriz[i][j])==0)
                     {
                         cont2++;
                     }
                     
                }
             }
             cont3++; 
             
             //Calcula racio
             
             printf("\nQuadrante %d", cont3);
             printf("\nNumero de 1s: %f",cont1);
             printf("\nNumero de 0s: %f",cont2);
             
             quad[cont3-1]=(cont1/cont2);
             printf("\nRacio: %f\n\n\n",quad[cont3-1]);
            // lin_i = lin_i + 5;
            // lin_f = lin_f + 5; 
             col_i = col_i + 5;
             col_f = col_f + 5;
             cont1=0;
             cont2=0;
          }
          lin_i = lin_i + 5;
          lin_f = lin_f + 5;
          col_i=0;
          col_f=5;
       }
      
}
void Resultados (FILE *fr, char *fp, double r24q[], char *pathname)
{
    int i=0,c=0;
    
    //fprintf(fr,"%s ", fp);        //Escreve o caminho
    
    //Escreve o racio
    for(i=0; i<24; i++)
    {
          printf("%f ", r24q[i]);
    }
    //fprintf(fr,"%f ", r24q);     
    //fprintf(fr,"\n"); 
}