Как устранить ошибку - C (СИ)

Узнай цену своей работы

Формулировка задачи:

вообщем надо было написать программу которая должна выяснить, встречается ли в данной строке группа символов, состоящая из трех стоящих рядом точек, которой непосредственно не предшествует точка, и за которой не следует точка. n=40 я написал
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int main ()
{ int i;
  char a[40];
   
    scanf ("%s", &a[i]);
    if ((a[0]=='.')&&(a[2]=='.')&&(a[1]=='.')&&(a[2]!='.')) printf("Г„Г*");
    if ((a[37]=='.')&&(a[39]=='.')&&(a[38]=='.')&&(a[36]!='.')) printf("Г„Г*");
    for(i=2;i<=36;i++)
         if ((a[i]=='.')&&(a[i+1]=='.')&&(a[i+2]=='.')&&(a[i-1]!='.')&&(a[i+3]!='.')) printf("Г„Г*");
         printf("ГЌГҐГІ");
}
но она странным образом ничего не выводит, что делать?

Решение задачи: «Как устранить ошибку»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(void)
{
    char buf[41];
    char* p;
        
    if(fgets(buf, 41, stdin) == NULL)
    fputs("Input error\n", stderr), exit(1);
 
    p = strstr(buf, "...");
 
    while(p)
    {
    if(p[3] == '\0' || p[3] != '.')
        puts("Yes"), exit(0);
    p = strstr(p + 4, "...");
    }
 
    puts("No");
    
    exit(0);
}

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

  1. Подключение необходимых библиотек для работы с файлами и строками.
  2. Объявление двух переменных типа char: buf и p.
  3. Чтение строки из стандартного ввода с помощью функции fgets в массив buf.
  4. Поиск строки ... в списке с помощью функции strstr и присвоение адреса этой строки переменной p.
  5. Проверка условия: если p равно NULL или p[3] не равно '.', то выводится сообщение Yes и программа завершается с кодом 0.
  6. Если условие не выполняется, то функция strstr вызывается снова, но уже с аргументом p+4, чтобы продолжить поиск следующей строки ...
  7. Если условие не выполняется, то выводится сообщение No и программа завершается с кодом 0.
  8. В случае, если ввод не содержит строки ... или ввод содержит несколько строк ... без точек, программа завершается с кодом 1.

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


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

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

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