Дано: пустой квадрат из "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;
}

Объяснение кода листинга программы

  1. Объединение этих двух фрагментов кода с помощью оператора || будет работать некорректно, потому что каждый из них использует разные переменные и выполняет различные операции.
  2. В первой части кода ищется строка xxx в файле, и если она найдена, то программа выводит размер квадрата, вычисленный как разность между двумя индексами x.
  3. Во второй части кода ищется строка xxx в файле, и если она найдена, то программа выводит номер строки, где эта строка была найдена.
  4. Этот код будет работать правильно только в том случае, если все утверждения и проверки верны:
    • Файл text.txt существует в текущем каталоге и может быть прочитан.
    • Файл text.txt содержит хотя бы одну строку с xxx.
    • Строки с xxx не пересекаются и не находятся на одной и той же строке.
    • Строки с xxx не находятся в начале или конце файла.
    • Форматы ввода и вывода не вызывают переполнения или других проблем.
    • Код не выполняется в многопоточной среде.
    • Нет других скрытых ограничений, которые могут повлиять на выполнение кода.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5
Похожие ответы