codice:
#include <stdio.h>
#include <stdlib.h>
#define DIMR 20
#define NCAR 100
/* Prototipi delle funzioni */
int LeggiSequenza(char [], int S[DIMR], int *m );
int Fibonacci(int S[DIMR],int n, int m);
int ScriviSeq(char [], int S[DIMR], int r, int c, int val);
int StampaSequenza(int S[DIMR], int r, int c);
int main(int argc, char** argv) {
int S[DIMR];
char nomefile[NCAR];
int r, c, val;
printf("Inserire nome file di input >");
scanf("%s", nomefile);
/* Legge la sequenza di interi da file e costruisce la seguenza*/
r=LeggiSequenza(nomefile, S, &c);
/* Stampa Seguenza a video */
StampaSequenza(S,r,c);
/* Verifica se la seguenza è di Fibonacci */
val = Fibonacci(S, r, c);
if (val)
printf("Seguenza di Fibbonacci.\n");
else
printf("Non è una seguenza di Fibbonacci");
printf("Inserire nome file di output >");
scanf("%s", nomefile);
/* Stampa su file la matrice e dice se è o no una matrice FRAME*/
ScriviSeq(nomefile, S, r, c, val);
return (EXIT_SUCCESS);
}
int LeggiSequenza(char nomefile[], int S[DIMR], int *m )
{
int i;
FILE* file= fopen(nomefile,"r");
if(file==NULL){
printf("Errore nell'apertura del file %s\n",nomefile);
return EXIT_FAILURE;
}
fscanf(file,"%d",m);
if(*m>DIMR){
printf("La dimensione massima è %d\n",DIMR);
return 0;
}
while(!feof(file)){
for(i=0;i<*m;i++)
fscanf(file, "%d\n", &S[i]);
i;
}
fclose(file);
return i;
}
int Fibonacci(int S[DIMR],int n, int m){
//non riesca a farla
}
int ScriviSeq(char nomefile[], int S[DIMR], int r, int c, int val)
{
int i;
FILE* file=fopen(nomefile, "w");
if(file==NULL){
printf("errore nell'apertura del file %s\n",nomefile);
return 1;
}
for(i=0; i<r; i++){
fprintf(file, "%d", S[i]);
fprintf(file,"\n");
}
fclose(file);
return 0;
}
// La funzione stampa la successione a video
int StampaSequenza(int S[DIMR], int r, int c)
{
int i;
for(i = 0; i < r; i++) {
printf("%d ",S[i]);
printf("\n");
}
}