1/*
2 Mette a 0 il massimo elemento di un vettore.
3*/
4
5#include<stdlib.h>
6#include<stdio.h>
7
8int main() {
9 FILE *fd;
10 int res;
11
12 int x;
13 int max; /* massimo trovato finora */
14 int posmax; /* posizione del massimo nel file */
15
16
17 /* apre il file */
18 fd=fopen("test.dat", "r+");
19 if( fd==NULL ) {
20 perror("Errore in apertura del file");
21 exit(1);
22 }
23
24
25 /* ciclo di lettura */
26 max=0;
27 while(1) {
28 res=fread(&x, sizeof(int), 1, fd);
29 if( res!=1 )
30 break;
31
32 if( x>max ) {
33 max=x;
34 posmax=ftell(fd)-sizeof(int);
35 }
36 }
37
38
39 /* torna nella posizione del massimo
40 e ci scrive sopra 0 */
41 fseek(fd, posmax, SEEK_SET);
42 x=0;
43 fwrite(&x, sizeof(int), 1, fd);
44
45
46 /* chiude il file */
47 fclose(fd);
48
49 return 0;
50}
51
52