Posto il codice cosi è più chiaro
il debug si ferma all'istruzione in rosso..perchè legge solo l'ultimo elemento del file scritto in precedenza e quindi poi trova ctrl-z e si ferma...come mai il puntatore punta all'ultimo elemento e non al primo?codice:#include <stdio.h> #include <stdlib.h> #define N 6 /* * * * * */ int main() { int numero, num, pos, media; int i = 0; int j = 0; int V[N]; struct risultato{ int pos; float med; }risultati[N]; FILE *cfPtr; /*cfPtr = punta al file ingresso.txt*/ /*scrive il file*/ if ((cfPtr = fopen("appello.txt", "w")) == NULL){ printf ("Il file non può essere aperto"); } else{ printf ("Inserisci i numeri del vettore : \n"); printf ("Inserisci EOF per terminare l'inserimento \n"); scanf ("%d", &numero); while (!feof(stdin)){ scanf ("%d", &numero); } fclose(cfPtr); } printf ("Inserisci il numero da cercare : \n"); scanf ("%d", &num); /*fopen apre il file*/ if ((cfPtr = fopen("appello.txt", "r")) == NULL){ printf ("Il file non può essere aperto"); } else{ fscanf (cfPtr, "%d", &numero); V[i] = numero; i++; while (!feof(cfPtr)){ fscanf (cfPtr, "%d", &numero); V[i] = numero; i++; for (i = 0; i < N; i++){ if (num = numero){ risultati[i].pos = i; risultati[i].med = (float)(V[i-1]*V[i+1])/2; } } printf ("Posizione del numero : %d", risultati[i].pos); printf ("Media : %.2f", risultati[i].med); } fclose(cfPtr); } return 0; }

Rispondi quotando