Ответы пользователя по тегу C
  • Как улучшить код на Си(сделать "красивше")?

    Улучшить можно следующими способами:
    • знанием и использованием стандартных функций
    • проверкой результатов и обработкой ошибок
    #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;
    }
    Ответ написан
    1 комментарий