Сканируйте файл в массив и назначьте имя числам в C
У меня есть 12 номеров в файле. Цифры указаны для Янаруара, февраля, марта и так далее. Я планирую использовать массив, и я могу сканировать числа и находить среднее, сумму, самое высокое, самое низкое и так далее, но мне нужно, чтобы программа отображала, например, "самое высокое число было Джанаури с 123". не просто отображать 123 как самое большое число. Также моя программа не отображает данные по порядку. Но все остальное работает.
Что я уже пробовал:
#include<stdio.h> #include<stdlib.h> #define SIZE 12 #define FREQ_SIZE 101 void printData (const float values[], int num_values); float findLargest (const float values[], int num_values); float findSmallest (const float values[], int num_values); void findTotAvg (const float values[], int num_values, float * total, float * average); void makeFreq (const float values[], int num_values, int freq_ary[], int freq_size); int readData (float values[], int max_size); int findMode (const int freq_ary[], int freq_size); void bubbleSort(float values[], int num_values); int main () { float values[SIZE]; int freq_ary[FREQ_SIZE]={0}; float total, average, largest, smallest, median; int num_values, mode; int i; // read the data from a file num_values = readData (values, SIZE); // print the values //printData (values, num_values); // find the total and average of the values findTotAvg (values, num_values, &total, &average); // find the largest value findLargest (values, SIZE); largest = findLargest (values, SIZE); // find the smallest value findSmallest (values, SIZE); smallest = findSmallest (values, SIZE); // find the mode mode = findMode(freq_ary, FREQ_SIZE); bubbleSort(values,num_values); if(num_values % 2 == 0) {//Even number of scores median = (values[num_values/2] + values[num_values/2+1])/2; } else {//Odd number of scores median = values[num_values/2+1]; } printf ("Total: %5.1f\n", total); printf ("Average: %5.1f\n", average); printf ("Largest: %5.1f\n", largest); printf ("Smallest: %5.1f\n", smallest); printf ("Median: %5.1f\n", median); printf ("\n\nSorted marks : \n\n"); printf (values,num_values); return 0; } int readData (float values[], int max_size) { FILE * inFile; int num_values = 0; int result; float temp; inFile = fopen ("C:\\Users\\Windows User\\Desktop\\dogs.txt", "r"); if (!inFile) { printf ("Error opening data file!\n"); return 100; } // read the data from the file num_values = 0; result = fscanf(inFile, "%f", &temp); while (result == 1 && num_values <= max_size && !feof(inFile)) { if(temp >=0.0 && temp <= 100.0) values[num_values] = temp; num_values++; result = fscanf(inFile, "%f", &temp); } return num_values; fclose(inFile); } // print the values void printData (const float values[], int num_values) { int i; for (i=0; i < num_values; ++i) { printf ("%f\n", values[i]); } printf("\n\n"); } float findLargest (const float values[], int num_values) { float largest; int i; // find the largest value largest = values[0]; for (i=1; i < num_values; ++i) { if (values[i] > largest) { largest = values[i]; } } return largest; } // find the smallest value float findSmallest (const float values[], int num_values) { float smallest; int i; smallest = values[0]; for (i=1; i < num_values; ++i) { if (values[i] < smallest) { smallest = values[i]; } } return smallest; } // find the total and average of the values void findTotAvg (const float values[], int num_values, float * total, float * average) { int i; *total = 0; for (i=0; i < num_values; ++i) { *total = *total + values[i]; } *average = *total / num_values; } void makeFreq (const float values[], int num_values, int freq_ary[], int freq_size) { int f, i; // zero out freq array for (f=0; f < freq_size; f++) freq_ary[f] =0; // build frequency for (i=0; i < num_values; i++) { freq_ary[(int)(values[i])]++; } } // the mode is the index of the largest value in the frequency array int findMode (const int freq_ary[], int freq_size) { int mode; int i; // find the largest value mode = 0; for (i=1; i < freq_size; ++i) { if (freq_ary[i] > freq_ary[mode]) { mode = i; } } return mode; } void bubbleSort(float values[], int num_values){ int i,j; float temp; for(i=0;i<num_values;i++){ for(j="0;j<num_values-i-1;j++){" if(values[j]=""> values[j+1]){ temp = values[j]; values[j] = values[j+1]; values[j+1] = temp; } } } }