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
的引用,但这也不是标准的一部分。