63 lines
1.2 KiB
C
63 lines
1.2 KiB
C
/*
|
|
Nome: Mario
|
|
Cognome: Montanari
|
|
Classe: 3AIN
|
|
Data: 16/04/2025
|
|
|
|
es03:
|
|
Scrivi una funzione che preso in ingresso il nome di un file contenente
|
|
interi, lo modifichi in modo da contenere gli stessi interi ma in ordine
|
|
decrescente.
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
|
|
#define SIZE 1000+1
|
|
|
|
void leggiNumeri(FILE *file);
|
|
|
|
int main(void) {
|
|
FILE *file = fopen("file.bin", "rb");
|
|
|
|
if (file != NULL) {
|
|
leggiNumeri(file);
|
|
|
|
fclose(file);
|
|
} else {
|
|
perror("Error (source)");
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
void leggiNumeri(FILE *file) {
|
|
int numeri[SIZE];
|
|
int i = 0;
|
|
|
|
while (fread(&numeri[i], sizeof(int), 1, file) == 1) {
|
|
i++;
|
|
}
|
|
|
|
for (int j = 0; j < i - 1; j++) {
|
|
for (int k = j + 1; k < i; k++) {
|
|
if (numeri[j] < numeri[k]) {
|
|
int temp = numeri[j];
|
|
numeri[j] = numeri[k];
|
|
numeri[k] = temp;
|
|
}
|
|
}
|
|
}
|
|
|
|
for (int j = 0; j < i; j++) {
|
|
printf("%d ", numeri[j]);
|
|
}
|
|
printf("\n");
|
|
|
|
file = fopen("file.bin", "wb");
|
|
if (file != NULL) {
|
|
fwrite(numeri, sizeof(int), i, file);
|
|
fclose(file);
|
|
} else {
|
|
perror("Error (write)");
|
|
}
|
|
} |