#include #include #include #include #include #include void main(int argc, char* argv[]) { float *array = NULL; int arrayLength = 0; int arrayUsage = 0; float max = FLT_MIN; float current; FILE *fp; for (int i = 1; i < argc; i++) { fp = fopen(argv[i], "r"); if (fp == NULL) { fprintf(stderr, "Could not open `%s´: %s\n", argv[i], strerror(errno)); exit(EXIT_FAILURE); } for (int res; res = fscanf(fp, "%f\n", ¤t); ) { if (res == EOF || res != 1) break; if (arrayUsage >= arrayLength) { if (arrayLength <= 1) arrayLength = 1; // fprintf(stderr, "Reallocating array %d → %d\n", arrayLength, arrayLength * 2); arrayLength *= 2; array = realloc(array, sizeof(float) * arrayLength); } array[arrayUsage] = current; arrayUsage++; } if (ferror(fp)) { fprintf(stderr, "Error while reading from file `%s´: %s\n", argv[i], strerror(errno)); exit(EXIT_FAILURE); } fclose(fp); } for (int i = 0; i < arrayUsage; i++) { if (array[i] > max) max = array[i]; } printf("%.2f\n", max); }