「已注销」 2022-03-12 10:48 采纳率: 50%
浏览 1083
已结题

查找指定字符。输入一个字符,再输入一个以回车符结束的字符串(少于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;
}

  • 写回答

3条回答 默认 最新

  • 关注

    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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月21日
  • 已采纳回答 3月13日
  • 修改了问题 3月12日
  • 创建了问题 3月12日

悬赏问题

  • ¥15 基于单片机数字电压表电路组成及框图
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line