查找指定字符 (15分)
希望各位大佬看看缺陷在哪里,也希望各位大佬能给出自己的答案{:5_101:}
输入格式:
输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。
输出格式:
如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。
输入样例1:
m
programming
输出样例1:
index = 7
输入样例2:
a
1234
输出样例2:
Not Found
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char c;
int x=0;
int index=-1;
char m;
scanf("%c",&c);
getchar();
scanf("%c",&m);
if(m==c)
{
index = 0;
}
while(m!='\n')
{
x++;
scanf("%c",&m);
{
if(c==m)
{
index = x;
break;
}
}
}
if(index<0)
{
printf("Not Found\n");
}
else
{
printf("index = %d\n",index);
}
system("pause");
return 0;
} 你刷这些题为了什么?考试?
如果是考试,我不说你什么
如果不是考试,那你刷这类题就是浪费时间
不如去学习更多的编程语言,像汇编语言,python,java,还有C++,如果你想学php,web开发也没关系
学了这么多编程语言后你就可以找到这些语言共同的东西,得到了这些东西,你就可以以不变应万变
在学习其他语言的同时也可以提高你的编程思维
还有一点,学会调试
再说一次,调试很重要,一定要学会调试,你不能总是指望别人帮你调试吧?
一直指望别人帮你调试也不是个事吧
再说一次,调试很重要
人造人 发表于 2020-1-15 10:23
你刷这些题为了什么?考试?
如果是考试,我不说你什么
刷题不是为了更好的运用所学到的吗? 最后的魁拔 发表于 2020-1-15 10:30
刷题不是为了更好的运用所学到的吗?
反正刷题不是我的学习方法,如果你认为刷题适合你的学习方法,我也不说你什么
但是,那你也要学会调试呀
如果说,你不认可我说的,刷题浪费时间这句话,我认,因为不同的人有不同的学习方法这件事我是同意的
但是,你得承认调试很重要,一定要学会调试
并不是说哪里有调试教程,看一遍就学会了,是要不断的调试,不断的总结调试的方法,不断的改进调试的方法,慢慢的提高调试的能力
不会高级的反汇编,查看C语言对应的汇编语言如何执行没关系,先从简单的下断点,单步步入,单步步过开始学
人造人 发表于 2020-1-15 10:41
反正刷题不是我的学习方法,如果你认为刷题适合你的学习方法,我也不说你什么
但是,那你也要学会调试呀 ...
好的,谢谢了 调试真的很重要,用眼睛看只能解决一些非常低级的错误
一定要学会调试,因为你不能指望让别人一直帮你调试,请问有谁愿意呢?站在你自己的角度想一想,你愿意一直帮别人调试程序?
我只做对自己有提升的事,当然有时候看到一些有意思的问题,我也会帮忙,所以你估计是指望不上我帮你调试了,除非你能提出一些有意思的问题,或者有深度的问题,对我用提升的问题
调试真的很重要,用于解决 用眼睛盯着代码看 解决不了的问题
本帖最后由 sunrise085 于 2020-1-15 10:54 编辑
不可否认多刷题练习的确能够更好的掌握。但是那也是要自己做才行啊,仅仅是看别人写代码效果会大打折扣。
你的提问特别的多,而且很大一部分提问没有任何含金量,简单地调试一下就可以搞定的你都拿来提问。。。
不知这应该说你懒,还是说你学习方法有水分。
人造人说的很对,你要学会自己调试。
不管你提出什么问题,很多人看到还是会回答的,为了赚分嘛,大部分人不会关心对你的学习是否有帮助。
这次继续帮你修改,不过还是希望能够自己多多调试,对你自己的学习有帮助。
你的这个程序中,没有体现不超过80字符,while循环没有查找到字符串的最后,找到一个就break了,所以你找到的index不一定是最大下标。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char c;
int x=1;
int index=-1;
char m;
scanf("%c",&c);
getchar();
scanf("%c",&m);
if(m==c)
index = 0;
while(m!='\n' &&x<80)
{
scanf("%c",&m);
if(c==m)
index = x;
x++;
}
if(index<0)
printf("Not Found\n");
else
printf("index = %d\n",index);
system("pause");
return 0;
} sunrise085 发表于 2020-1-15 10:53
不可否认多刷题练习的确能够更好的掌握。但是那也是要自己做才行啊,仅仅是看别人写代码效果会大打折扣。
...
说真的,等你做的这类事件多了,你会烦的,真的
因为当初我和你差不多吧
^_^
sunrise085 发表于 2020-1-15 10:53
不可否认多刷题练习的确能够更好的掌握。但是那也是要自己做才行啊,仅仅是看别人写代码效果会大打折扣。
...
这个就是我自己做的 最后的魁拔 发表于 2020-1-15 11:00
这个就是我自己做的
做不对和不是你做的有区别吗?有多大的区别?
还是要强调,调试很重要
人造人 发表于 2020-1-15 10:56
说真的,等你做的这类事件多了,你会烦的,真的
因为当初我和你差不多吧
^_^
淡定淡定。
不去看不去管,就可以了嘛~~键盘在别人手上,不违规、不违法。你是管不了的。
网络时代,充斥着太多的冗余信息。不必过多理会。
对于这个论坛上的很多浅显的提问,想答就答,不想答就当做没看到,略过去得了。
你实在没必要在这里谆谆教诲,他未必会听,你还徒惹自己不高兴。
划不来,划不来~~ 人造人 发表于 2020-1-15 11:03
做不对和不是你做的有区别吗?有多大的区别?
还是要强调,调试很重要
好的谢谢 sunrise085 发表于 2020-1-15 11:03
淡定淡定。
不去看不去管,就可以了嘛~~键盘在别人手上,不违规、不违法。你是管不了的。
网络时代,充 ...
我认为,授人以鱼不如授人以渔
教他渔总比给他鱼好吧?
最后的魁拔 发表于 2020-1-15 11:00
这个就是我自己做的
没说这个不是你做的,你这没有做出正确结果,然后来提问,别人给出答案,这还能称之为是你做出来的吗?
自己多尝试,多调试。自己修改代码。最终得到完美的结果时,才算是你自己做的了 sunrise085 发表于 2020-1-15 11:08
没说这个不是你做的,你这没有做出正确结果,然后来提问,别人给出答案,这还能称之为是你做出来的吗?
...
好的谢谢了 人造人 发表于 2020-1-15 11:07
我认为,授人以鱼不如授人以渔
教他渔总比给他鱼好吧?
嗯嗯,对的!
授人以鱼不如授人以渔~
有人不愿意学渔,只愿意拿鱼,你也没办法。
再者,其实这些简单的问题存在于论坛上还是有一定作用的。很多新手在学习的时候自己发现不了这么多问题,然后看看别人的提问,自己也能提高一下~
我是很同意你的观点的。咱俩就不争论这个事儿了~~
页:
[1]