ho fatto questo programma in c ma non funziona e non so come fare..il problema penso sia nell'int main.. quando eseguo il programma poi mi da errore segmentation fault!

il programma si riferisce agli esercizi 2-3

qui c'è il testo

e qui il programma

codice:
#include<stdio.h>
#include <string.h>

char Funzione (char numero[11] ,char m[5][80]);
int ConvertiNumero (char numero [1], int i);


int main ( char valore [10])
{
 char cifra [5][80];
 
 printf("inserisci il valore \n");
 scanf("%s", valore);
 Funzione (valore, cifra);
 printf("%s", Funzione);

}


char Funzione (char numero[11] ,char m[5][80])
{
int i,j, q=0, n;
char num[1], mat[5][8];
char nome[10]="file.txt";


FILE*fp;

for(i=0; numero[i]<strlen(numero); i++)
{

n=ConvertiNumero (numero, i);
  

nome[strlen(nome)-5]='n';
fp=fopen(nome,"r");
for(i=0;i<5;i++)
 for(j=0;j<8;j++)
  fscanf(fp,"%c", &mat[i][j]);
m[5][q]=mat[i][j];
}
fclose(fp);
return m[5][q];
q+=5;
}


int ConvertiNumero (char num[1], int i)
{
if (num[i]=='0')
return 0;
else if (num[i]=='1')
return 1;
else if (num[i]=='2')
return 2;
else if (num[i]=='3')
return 3;
else if (num[i]=='4')
return 4;
else if (num[i]=='5')
return 5;
else if (num[i]=='6')
return 6;
else if (num[i]=='7')
return 7;
else if (num[i]=='8')
return 8;
else if (num[i]=='9')
return 9;
}