传递一个字符串作为输入,一个表示字母位置值的整数,并传递一个表示大写或小写字母的字符“ u”或“ l”作为输入。输出应给出出现的N值字母的数量(区分大小写)。
代码正常工作,在6个隐藏测试用例中,有3个隐藏测试用例通过且3个隐藏测试用例失败。请帮忙! :(
#include <stdio.h>
#include <stdlib.h>
int main()
{
int N,Count=0,i,len;
char Ar[26]={'a','b','c','d','e','f','g','h','i','j','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'},M,Str[1000];
scanf("%[^\n]",Str);
//printf("%s",Str);
scanf("%d ",&N);
//printf("%d",N);
scanf("%c",&M);
//printf("%c",M);
len=strlen(Str);
if(M=='L' || M=='l')
{
for(i=0;i<len;i++)
{
if(Str[i]==Ar[N-1])
{
Count++;
}
}
}
else if(M=='U' || M=='u')
{
for(i=0;i<len;i++)
{
if(Str[i]==toupper(Ar[N-1]))
{
Count++;
}
}
}
if(Count==0)
{
printf("-1");
}
else
{
printf("%d",Count);
}
}
答案 0 :(得分:1)
@VishnuPriya,我认为错误在于您的数组char Ar[26]
。在该数组 *('h','i','j')*
中几乎没有重复的字符。
将数组修改为:-
char Ar[26] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j','k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}
确保没有字符重复。