Улучшить можно следующими способами:
- знанием и использованием стандартных функций
 - проверкой результатов и обработкой ошибок
 
#include <stdio.h>
#include <string.h>
#define MAX_NUM_LENGTH 100
const char* chose(const char* left, const char* right)
{
	const size_t len_left = strlen(left);
	const size_t len_right = strlen(right);
	if (len_left > len_right)
		return left;
	if (len_right > len_left)
		return right;
	if (strcmp(left, right) < 0)
		return right;
	return left;
}
const char* get_max(const char* n1, const char* n2, const char* n3)
{
	return
	    chose(
	        chose(n1, n2),
	        chose(n2, n3));
}
int main()
{
	FILE* in = NULL;
	FILE* out = NULL;
	char n1[MAX_NUM_LENGTH + 1];
	char n2[MAX_NUM_LENGTH + 1];
	char n3[MAX_NUM_LENGTH + 1];
	in = fopen("input.txt", "r");
	if (!in) {
		perror("Cannot open file 'input.txt'");
		return 1;
	}
	if (3 != fscanf(in, "%100[0-9] %100[0-9] %100[0-9]", n1, n2, n3)) {
		perror("Wrong input format");
		fclose(in);
		return 1;
	}
	const char* max_num = get_max(n1, n2, n3);
	out = fopen("output.txt", "w");
	if (!out) {
		perror("Cannot open file 'output.txt'");
		return 1;
	}
	fprintf(out, "%s", max_num);
	fclose(in);
	fclose(out);
	return 0;
}