Дано: пустой квадрат из "x" в текстовом файле. Найти сторону квадрата и вывести её на экран - C (СИ)
Формулировка задачи:
Здравствуйте, помогите пожалуйста. Мне нужно решить эту задачу. Заранее спасибо.
Решение задачи: «Дано: пустой квадрат из "x" в текстовом файле. Найти сторону квадрата и вывести её на экран»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { int i; FILE * fp; char * line = NULL; char *p, *d; size_t len = 0; fp = fopen("text.txt", "r"); if(fp == NULL) exit(EXIT_FAILURE); for(i = 0;(getline(&line, &len, fp)) != -1; i++) { if(strstr(line, "xxx") != NULL) { getline(&line, &len, fp); p = strchr(line, (int)'x'); d = strrchr(line, (int)'x'); printf("%s %d x", "Размер квадрата в попугаях: ", (int)(d - p + 1)); break; } } for(i=0;(getline(&line, &len, fp)) != -1; i++) { if(strstr(line, "xxx") != NULL) { printf(" %d\n", i+3); break; } } if(line) free(line); return EXIT_SUCCESS; }
Объяснение кода листинга программы
- Объединение этих двух фрагментов кода с помощью оператора
||
будет работать некорректно, потому что каждый из них использует разные переменные и выполняет различные операции. - В первой части кода ищется строка
xxx
в файле, и если она найдена, то программа выводит размер квадрата, вычисленный как разность между двумя индексамиx
. - Во второй части кода ищется строка
xxx
в файле, и если она найдена, то программа выводит номер строки, где эта строка была найдена. - Этот код будет работать правильно только в том случае, если все утверждения и проверки верны:
- Файл
text.txt
существует в текущем каталоге и может быть прочитан. - Файл
text.txt
содержит хотя бы одну строку сxxx
. - Строки с
xxx
не пересекаются и не находятся на одной и той же строке. - Строки с
xxx
не находятся в начале или конце файла. - Форматы ввода и вывода не вызывают переполнения или других проблем.
- Код не выполняется в многопоточной среде.
- Нет других скрытых ограничений, которые могут повлиять на выполнение кода.
- Файл
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д