查找指定字符。输入一个字符,再输入一个以回车符结束的字符串(少于80个字符),在字符串中查找该字符。如果找到,则输出该字符在字符串中所对应的最大下标,从下标0开始;否则输出"Not Found"。

//查找指定字符。输入一个字符,再输入一个以回车符结束的字符串(少于80个字符),在字符串中查找该字符。
//如果找到,则输出该字符在字符串中所对应的最大下标,从下标0开始;否则输出"Not Found"。
请问哪里错了?编译不出来
#include<stdio.h>
int main()
{
char t,k;
char a[80];
int i=0,j;
scanf("%c",&k);
t=getchar();
while((a[i]=getchar())!='\n')
{
i++;
}
a[i]='\0';
j=i-1;
while(j>=0)
{
if(a[j]==k){printf("%d",k);break;}
else{j--;}
}
if(j==-1){printf("Not Found");}
return 0;
}

if(a[j]==k){printf("%d",k);break;}这一句中,printf显示的应该是j,不是k,改成
if(a[j]==k){printf("%d",j);break;}

修改后运行结果如下:

img

完整代码:

#include<stdio.h>
int main()
{
    char t,k;
    char a[80];
    int i=0,j;
    scanf("%c",&k);
    t=getchar();
    while((a[i]=getchar())!='\n')
    {
        i++;
    }
    a[i]='\0';
    j=i-1;
    while(j>=0)
    {
        if(a[j]==k){printf("%d",j);break;}
        else{j--;}
    }
    if(j==-1){printf("Not Found");}
    return 0;
}

数组a都没有赋值哦,循环前面加一条语句,给数组a赋值

gets(a);

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632