#include <stdio.h>
#define MAX 100
#define FILENAME "output.txt" // Definisce il nome del file di output
// Funzione per caricare un array di N numeri
void CaricaArray (int Arr[], int dimensione) {
// Controllo per evitare che il numero di elementi sia più grande del limite
if (dimensione > MAX) {
printf("Errore: la dimensione specificata (%d) supera la dimensione massima consentita (%d).\n", dimensione, MAX);
return; // Termina la funzione in caso di errore
}
printf("Carica i %d numeri dell'array: \n", dimensione);
for (int i = 0; i < dimensione; i++) {
scanf("%d", &Arr[i]);
}
}
//In questo modo si crea una copia dell'array, in modo da preservare l'array originale
void PassaArray(const int Arr[], int Arr1[], int dim) {
for (int i = 0; i < dim; i++) {
Arr1[i] = Arr[i];
}
}
void OrdineCrescente(int v[], int n) {
int tmp;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (v[j] > v[j+1]) {
tmp = v[j];
v[j] = v[j+1];
v[j+1] = tmp;
}
}
}
}
void StampaArraySuFile(int Arr[], int dimensione, const char Messaggio[]) {
FILE *File = fopen(FILENAME, "a");
if (File == NULL) {
printf("Errore nell'apertura del file");
return;
}
fprintf(File, "\n--- %s ---\n", Messaggio);
for (int i = 0; i < dimensione; i++) {
fprintf(File, "%d\t", Arr[i]);
}
fprintf(File, "\n");
fclose(File); // Chiudiamo sempre il file
}
// Funzione per calcolare Minore e Maggiore e salvarli su file
// Con i puntatori (*Minor, *Maggior) per modificare le variabili nel main
void CalcolaMinoreEMaggiore (int Arr[], int dimensione, int *Minor, int *Maggior, const char Messaggio1[], const char Messaggio2[]) {
// Controllo per array vuoto
if (dimensione <= 0) return;
*Minor = Arr[0];
*Maggior = Arr[0];
for (int i = 1; i < dimensione; i++) {
if (Arr[i] < *Minor) {
*Minor = Arr[i];
} else if (Arr[i] > *Maggior) {
*Maggior = Arr[i];
}
}
FILE *File = fopen(FILENAME, "a");
if (File == NULL) {
perror("Errore nell'apertura del file");
return;
}
fprintf(File, "\n--- Calcolo Minore e Maggiore ---\n");
fprintf(File, "%s: %d\n", Messaggio1, *Minor);
fprintf(File, "%s: %d\n", Messaggio2, *Maggior);
fclose(File); // Chiudiamo sempre il file
}
// Funzione per calcolare la media e salvarla su file
void Calcolamedia(int Arr[], int dimensione, const char Messaggio[]) {
// Controllo per evitare divisione per zero
if (dimensione <= 0) return;
int temp = 0;
float media;
for (int i = 0; i < dimensione; i++) {
temp += Arr[i];
}
media = (float)temp / dimensione;
FILE *File = fopen(FILENAME, "a");
if (File == NULL) {
perror("Errore nell'apertura del file");
return;
}
@Igorosku
Founder OP