【发布时间】:2015-10-04 10:56:30
【问题描述】:
这个程序没有给出正确的输出;并且在 for 循环中第一次进入时,它只接受一次输入而不是 't' 次。
这个问题是 HEADBOB (https://www.codechef.com/problems/HEADBOB)
#include <stdio.h>
int main()
{
int t;
scanf("%d", &t);
for(t; t>0; t--)
{
int J=0, Y=0, N=0, I=0, len=0;
if(len==0)
scanf("%d", &len);
char ar[len];
for(J=0; J<len; J++)
{
scanf("%c",&ar[J]);
if(ar[J]=='Y')
Y++;
else if(ar[J]=='N')
N++;
else if(ar[J]=='I')
I++;
}
if(I>0)
printf("INDIAN\n");
else
{
if((Y&&!N)||(N&&!Y))
printf("NOT SURE\n");
else if(Y&&N) printf("NOT INDIAN\n");
}
}
}
输入:
测试用例数
字符数
N 个字符
上述代码的输入和输出示例:
输入:
5
5
NNYNN
输出:
不是印度人
【问题讨论】:
-
if(len==0)始终为真。 -
我投票决定将此问题作为题外话结束,因为 SO 不是调试服务。
-
全大写名称通常保留给宏和常量。使用全部大写意味着你在对别人大喊大叫