ahmedarifhasan Ответов: 3

Почему codechef не принимает это?


Страница Конкурса | CodeChef[^]

Что я уже пробовал:

#include<stdio.h>
int main()
{
    int i,j,T;
    int c1[20],c2[20];
    char s[20][100000];

    scanf("%d",&T);

    for(i=0;i<T;i++)
    {
        c1[i]=0;
        c2[i]=0;
    }

    for(i=0;i<T;i++)
        scanf("%s",s[i]);
    for(i=0;i<=T-1;i++)
    { 
        for(j=0;s[i][j]!='\0';j++)
        {  
            if(s[i][j]=='A')
            { 
                c1[i]++;
            }
            else if(s[i][j]=='B')
            {
                c2[i]++;                
            }    
            else if(s[i][j]=='.') 
            {
                if(s[i][j+1]=='A'&&s[i][j-1]=='A')
                    c1[i]=c1[i]+1;
                else if (s[i][j+1]=='B'&&s[i][j-1]=='B')
                    c2[i]=c2[i]+1;
            }
        }
    }

    for(i=0;i<T;i++)
        printf("%d %d\n",c1[i],c2[i]);
}

Richard MacCutchan

Если вам нужна помощь, то вам нужно объяснить, что должен делать код и где он терпит неудачу.

3 Ответов

Рейтинг:
2

Patrice T

Это репост, единственные внесенные изменения-это исправления, которые вы получили в первом вопросе.
Я серьезно донно как улучшить это дальше[^]

Как вам уже было сказано, используйте отладчик, чтобы увидеть, что делает ваш код.

Ваш код терпит неудачу, потому что ваш алгоритм неверен.
Как программист, ваша задача-создавать алгоритмы это решает конкретные проблемы, и вы не можете полагаться на кого-то другого, чтобы вечно делать это за вас, поэтому есть время, когда вам придется научиться этому. И чем скорее, тем лучше.


Рейтинг:
2

Dave Kreskowiak

Это не принимается, вероятно, потому, что ожидаемый результат не производится.

Если вы ищете кого-то, кто отладит ваш код для вас, этого не произойдет, так как вы ничего не узнаете.


ahmedarifhasan

но состязание окончено, и я хочу знать, где я ошибаюсь.Надеюсь, вы понимаете.

ahmedarifhasan

все что я хочу сказать сейчас это:
- к сожалению, я ожидал помощи!"

Dave Kreskowiak

Я уже говорил тебе. Вот для чего нужен отладчик. Шагайте по коду, строка за строкой, чтобы вы могли видеть, что делает ваш алгоритм и где он идет неправильно.

То, что кто-то делает это за тебя, ничему тебя не учит. Если вы собираетесь продолжать писать код, это навык, который вы должны изучить. Если вы этого не сделаете, у вас не будет никакой надежды отладить свой алгоритм и увидеть, где вы ошибаетесь.

ahmedarifhasan

спасибо.

Рейтинг:
17

Jochen Arndt

Они говорят вам почему с индикатором результата который в вашем случае является красным крестиком:

Цитата:
неправильный ответ
Ваша программа была успешно скомпилирована и запущена, но результат не соответствовал ожидаемому результату.


ahmedarifhasan

да, у меня есть этот брат, но я сомневаюсь,почему он не принимает, я имею в виду, что должна быть какая-то ошибка, которую я не могу идентифицировать, поэтому я хочу, чтобы вы помогли мне найти эту ошибку и как можно исправить этот код.

Dave Kreskowiak

Вот для чего нужен отладчик. Пройдитесь по коду, чтобы убедиться, что ваш алгоритм делает то, что вы думаете. Отладчик существует для того, чтобы отлаживать вас, чтобы помочь вам понять, что код действительно делает, а не то, что вы предполагаете, что он делает.

Jochen Arndt

Почему: ваша программа просто не напечатала ожидаемый результат.
Ошибка: Ваш алгоритм / имплементация неверны.

Что он печатает для примера, приведенного в вызове?

Поэтому вам придется отлаживать, как предложил Дейв, или переосмысливать свой алгоритм.

- но состязание окончено, и я хочу знать, где я ошибаюсь."
Затем взгляните на другие решения.

Подсказка 1 (я посмотрел на некоторые из них):
Вы обрабатываете задачи T по - другому, чем многие другие решения. Это создает проблему, не наблюдаемую в вашем коде (их может быть больше, но одна из них очевидна, просто читая код).

Подсказка 2:
Если ошибок больше нет (я еще не запускал код) Я бы ожидал, что первое задание будет правильным.