鱼C论坛

 找回密码
 立即注册
查看: 1951|回复: 15

[已解决]查找指定字符 (15分)

[复制链接]
发表于 2020-1-15 09:57:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

希望各位大佬看看缺陷在哪里,也希望各位大佬能给出自己的答案
输入格式:
输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。

输出格式:
如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。

输入样例1:
m
programming

输出样例1:
index = 7

输入样例2:
a
1234

输出样例2:
Not Found
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. int main(void)
  4. {
  5.     char c;
  6.     int x=0;
  7.     int index=-1;
  8.     char m;
  9.     scanf("%c",&c);
  10.     getchar();
  11.     scanf("%c",&m);
  12.     if(m==c)
  13.     {
  14.         index = 0;
  15.         
  16.     }

  17.     while(m!='\n')
  18.     {
  19.         x++;
  20.         scanf("%c",&m);
  21.         {
  22.             if(c==m)
  23.             {
  24.                 index = x;
  25.                 break;
  26.             }
  27.         }
  28.     }
  29.     if(index<0)
  30.     {
  31.         printf("Not Found\n");
  32.     }
  33.     else
  34.     {
  35.         printf("index = %d\n",index);
  36.     }

  37.     system("pause");
  38.     return 0;
  39. }
复制代码
最佳答案
2020-1-15 10:53:07
本帖最后由 sunrise085 于 2020-1-15 10:54 编辑

不可否认多刷题练习的确能够更好的掌握。但是那也是要自己做才行啊,仅仅是看别人写代码效果会大打折扣。
你的提问特别的多,而且很大一部分提问没有任何含金量,简单地调试一下就可以搞定的你都拿来提问。。。
不知这应该说你懒,还是说你学习方法有水分。
人造人说的很对,你要学会自己调试。
不管你提出什么问题,很多人看到还是会回答的,为了赚分嘛,大部分人不会关心对你的学习是否有帮助。

这次继续帮你修改,不过还是希望能够自己多多调试,对你自己的学习有帮助。
你的这个程序中,没有体现不超过80字符,while循环没有查找到字符串的最后,找到一个就break了,所以你找到的index不一定是最大下标。
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. int main(void)
  4. {
  5.     char c;
  6.     int x=1;
  7.     int index=-1;
  8.     char m;
  9.     scanf("%c",&c);
  10.     getchar();
  11.     scanf("%c",&m);
  12.     if(m==c)
  13.         index = 0;

  14.     while(m!='\n' &&x<80)
  15.     {
  16.         scanf("%c",&m);
  17.         if(c==m)
  18.             index = x;
  19.         x++;
  20.     }
  21.     if(index<0)
  22.         printf("Not Found\n");
  23.     else
  24.         printf("index = %d\n",index);
  25.     system("pause");
  26.     return 0;
  27. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-1-15 10:23:43 | 显示全部楼层
你刷这些题为了什么?考试?
如果是考试,我不说你什么

如果不是考试,那你刷这类题就是浪费时间
不如去学习更多的编程语言,像汇编语言,python,java,还有C++,如果你想学php,web开发也没关系
学了这么多编程语言后你就可以找到这些语言共同的东西,得到了这些东西,你就可以以不变应万变
在学习其他语言的同时也可以提高你的编程思维

还有一点,学会调试
再说一次,调试很重要,一定要学会调试,你不能总是指望别人帮你调试吧?
一直指望别人帮你调试也不是个事吧

再说一次,调试很重要
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-1-15 10:30:14 | 显示全部楼层
人造人 发表于 2020-1-15 10:23
你刷这些题为了什么?考试?
如果是考试,我不说你什么

刷题不是为了更好的运用所学到的吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-15 10:41:55 | 显示全部楼层
最后的魁拔 发表于 2020-1-15 10:30
刷题不是为了更好的运用所学到的吗?

反正刷题不是我的学习方法,如果你认为刷题适合你的学习方法,我也不说你什么
但是,那你也要学会调试呀

如果说,你不认可我说的,刷题浪费时间这句话,我认,因为不同的人有不同的学习方法这件事我是同意的
但是,你得承认调试很重要,一定要学会调试
并不是说哪里有调试教程,看一遍就学会了,是要不断的调试,不断的总结调试的方法,不断的改进调试的方法,慢慢的提高调试的能力

不会高级的反汇编,查看C语言对应的汇编语言如何执行没关系,先从简单的下断点,单步步入,单步步过开始学
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-1-15 10:49:13 | 显示全部楼层
人造人 发表于 2020-1-15 10:41
反正刷题不是我的学习方法,如果你认为刷题适合你的学习方法,我也不说你什么
但是,那你也要学会调试呀 ...

好的,谢谢了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-15 10:50:20 | 显示全部楼层
调试真的很重要,用眼睛看只能解决一些非常低级的错误
一定要学会调试,因为你不能指望让别人一直帮你调试,请问有谁愿意呢?站在你自己的角度想一想,你愿意一直帮别人调试程序?
我只做对自己有提升的事,当然有时候看到一些有意思的问题,我也会帮忙,所以你估计是指望不上我帮你调试了,除非你能提出一些有意思的问题,或者有深度的问题,对我用提升的问题

调试真的很重要,用于解决 用眼睛盯着代码看 解决不了的问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-15 10:53:07 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sunrise085 于 2020-1-15 10:54 编辑

不可否认多刷题练习的确能够更好的掌握。但是那也是要自己做才行啊,仅仅是看别人写代码效果会大打折扣。
你的提问特别的多,而且很大一部分提问没有任何含金量,简单地调试一下就可以搞定的你都拿来提问。。。
不知这应该说你懒,还是说你学习方法有水分。
人造人说的很对,你要学会自己调试。
不管你提出什么问题,很多人看到还是会回答的,为了赚分嘛,大部分人不会关心对你的学习是否有帮助。

这次继续帮你修改,不过还是希望能够自己多多调试,对你自己的学习有帮助。
你的这个程序中,没有体现不超过80字符,while循环没有查找到字符串的最后,找到一个就break了,所以你找到的index不一定是最大下标。
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. int main(void)
  4. {
  5.     char c;
  6.     int x=1;
  7.     int index=-1;
  8.     char m;
  9.     scanf("%c",&c);
  10.     getchar();
  11.     scanf("%c",&m);
  12.     if(m==c)
  13.         index = 0;

  14.     while(m!='\n' &&x<80)
  15.     {
  16.         scanf("%c",&m);
  17.         if(c==m)
  18.             index = x;
  19.         x++;
  20.     }
  21.     if(index<0)
  22.         printf("Not Found\n");
  23.     else
  24.         printf("index = %d\n",index);
  25.     system("pause");
  26.     return 0;
  27. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-15 10:56:00 | 显示全部楼层
sunrise085 发表于 2020-1-15 10:53
不可否认多刷题练习的确能够更好的掌握。但是那也是要自己做才行啊,仅仅是看别人写代码效果会大打折扣。
...

说真的,等你做的这类事件多了,你会烦的,真的
因为当初我和你差不多吧
^_^
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-15 11:00:29 | 显示全部楼层
sunrise085 发表于 2020-1-15 10:53
不可否认多刷题练习的确能够更好的掌握。但是那也是要自己做才行啊,仅仅是看别人写代码效果会大打折扣。
...

这个就是我自己做的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-15 11:03:00 | 显示全部楼层
最后的魁拔 发表于 2020-1-15 11:00
这个就是我自己做的

做不对和不是你做的有区别吗?有多大的区别?
还是要强调,调试很重要
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-15 11:03:02 | 显示全部楼层
人造人 发表于 2020-1-15 10:56
说真的,等你做的这类事件多了,你会烦的,真的
因为当初我和你差不多吧
^_^

淡定淡定。
不去看不去管,就可以了嘛~~键盘在别人手上,不违规、不违法。你是管不了的。
网络时代,充斥着太多的冗余信息。不必过多理会。
对于这个论坛上的很多浅显的提问,想答就答,不想答就当做没看到,略过去得了。
你实在没必要在这里谆谆教诲,他未必会听,你还徒惹自己不高兴。
划不来,划不来~~

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
人造人 + 5 + 5 + 3 鱼C有你更精彩^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-15 11:04:27 | 显示全部楼层
人造人 发表于 2020-1-15 11:03
做不对和不是你做的有区别吗?有多大的区别?
还是要强调,调试很重要

好的谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-15 11:07:18 | 显示全部楼层
sunrise085 发表于 2020-1-15 11:03
淡定淡定。
不去看不去管,就可以了嘛~~键盘在别人手上,不违规、不违法。你是管不了的。
网络时代,充 ...

我认为,授人以鱼不如授人以渔
教他渔总比给他鱼好吧?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-15 11:08:21 | 显示全部楼层
最后的魁拔 发表于 2020-1-15 11:00
这个就是我自己做的

没说这个不是你做的,你这没有做出正确结果,然后来提问,别人给出答案,这还能称之为是你做出来的吗?
自己多尝试,多调试。自己修改代码。最终得到完美的结果时,才算是你自己做的了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-15 11:12:28 | 显示全部楼层
sunrise085 发表于 2020-1-15 11:08
没说这个不是你做的,你这没有做出正确结果,然后来提问,别人给出答案,这还能称之为是你做出来的吗?
...

好的谢谢了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-15 11:12:59 | 显示全部楼层
人造人 发表于 2020-1-15 11:07
我认为,授人以鱼不如授人以渔
教他渔总比给他鱼好吧?

嗯嗯,对的!
授人以鱼不如授人以渔~
有人不愿意学渔,只愿意拿鱼,你也没办法。
再者,其实这些简单的问题存在于论坛上还是有一定作用的。很多新手在学习的时候自己发现不了这么多问题,然后看看别人的提问,自己也能提高一下~
我是很同意你的观点的。咱俩就不争论这个事儿了~~

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
人造人 + 5 + 5 + 3 鱼C有你更精彩^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-5 10:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表