C语⾔教学杂记——字母排序
⼀个⼈在被告诉⼀个问题应该怎么被解决后,⽽且亲⾝试验效果OK后,⼀旦遇到类似的问题,就会条件反射般直接拿这个⽅法来⽤了。很少会去想为什么要⽤这个⽅法,会不会有什么隐患,还有没有别的⽅法呢,等等这些问题。
⾄少我是这样。
这学期上C语⾔课,本来出的题⽬让学⽣把任意字符串按照字母顺序输出,是想让他们练习⼀下排序算法。
有个学⽣交上来的程序是这样的:
#include <stdio.h>
字符串长度排序c语言#include <string.h>
int main()
{
char ch[100],_mark;
int i,n;
scanf("%s",ch);
n=strlen(ch);
_mark='A';
while(_mark<='Z')
{
for(i=0;i
{
if(ch[i]==_mark)
printf("%c",ch[i]);
}
_mark++;
}
return0;
}
很明显,她的思路是把这串字符遍历26次,从最⼩的‘A’开始遍历⼀遍,相等的输出;然后⽤'B'去遍历,直到最后⼀个⼤写字母'Z'。
在我已经⼤概提过排序的思路后,她却想到了这个输出⽅式。虽然,这个算法的适应性和算法的时间复杂度都很⾼,⽽且从这两个评判程序优劣的⾓度来看这个程序甚⾄是略显笨拙。但是,它胜在容易理解和别出⼼裁,实在是让我惊喜!!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论