The Problem

我的代码有什么问题?它在我的TurboC编译器上运行完全正常,但在CodeChef中给出了运行时错误。

艾达(Ada)有N支蜡笔,有些蜡笔指向上方,有些蜡笔指向下方。艾达(Ada)认为,如果所有蜡笔都指向同一方向,那么一系列蜡笔就很漂亮。

一步即可翻转连续蜡笔的任何部分。翻转线段后,所有指向下方的蜡笔都将指向上方并变脏

使蜡笔阵列漂亮的最少步骤数是多少?

输入值

输入的第一行包含T个测试用例的数量。每个测试用例在包含N个字符的字符串S的一行中描述,如果第i个蜡笔指向上方,则第i个字符为'U';如果指向下方,则为'D'。

输出量

对于每个测试用例,输出一行,其中包含使所有蜡笔指向同一方向所需的最少翻转次数。



输入:
1个
乌杜杜

输出:
1个

#include<stdio.h>

int main()
{
    clrscr();
    int t,i,j,p,c,k,ucount=0,dcount=0;
    char last='0';
    char cases[50][3000];

    scanf("%d",&t);

    for(i=0;i<t;i++)
        scanf("%s",cases[i]);

    for(i=0;i<t;i++)
    {
        for(j=0;cases[i][j]!='\0';j++)
        {
            if(cases[i][j]=='U' && last!='U')
            {
                ucount++;
                last='U';
            }
            else if(cases[i][j]=='D' && last!='D')
            {
                dcount++;
                last='D';
            }
        }

        if(i==(t-1))
        {
            if(dcount<ucount)
                printf("%d",dcount);
            else
                printf("%d",ucount);
        }
        else
        {
            if(dcount<ucount)
                printf("%d\n",dcount);
            else
                printf("%d\n",ucount);
        }

        ucount=0;
        dcount=0;
        last='0';
    }

    return 0;
}

最佳答案

我严重怀疑CodeChef是否支持您似乎使用过的非标准clrscr()函数。您应该确保使用的是本地符合标准的产品,而不是使用标准库中找不到的平台和工具特定功能的产品。

Davids-Mac-Pro:~ dhoelzer$ gcc test.c
test.c:4:1: warning: implicit declaration of function 'clrscr' is invalid in C99
      [-Wimplicit-function-declaration]
clrscr();
^
1 warning generated.
Undefined symbols for architecture x86_64:
  "_clrscr", referenced from:
      _main in test-171c5e.o
ld: symbol(s) not found for architecture x86_64


您可能会找到使用conio.h的引用,但这也不是标准的一部分。

07-24 09:25