📄 subject_48890.htm
字号:
<p>
序号:48890 发表者:段与 发表日期:2003-08-04 17:53:12
<br>主题:字符串排序问题
<br>内容:以下是本人的一个排序程序,请帮忙改正。<BR>main()<BR>{<BR> char *key[5];<BR> char **p,*temp;<BR> int i,j,k,h;<BR><BR> int len=5;<BR> for(i=0;i<len;i++) <BR> gets(key[i]);<BR> p=key;<BR> for (i=0;i<len-1;i++)<BR> {<BR> k=i;<BR> for (j=i+1;j<len;j++)<BR> {<BR> if (strcmp(*(p+k),*(p+j))>0) <BR> {<BR> k=j;<BR> }<BR> <BR> }<BR> if (k!=i)<BR> {<BR> <BR> temp =*(p+i);<BR> *(p+i)=*(p+k);<BR> *(p+k)=temp;<BR> <BR> }<BR> }<BR> for (i=0;i<len;i++)<BR> {<BR> printf ("%s\n",*(p+i));<BR> <BR> }<BR>}<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:木一 回复日期:2003-08-04 22:13:38
<br>内容:gets(key[i]);<BR>就有问题。它把带空格的全部读进key[0]了。 key[1]~key[4] 都没有定义<BR><BR><BR>你排序算法是没有问题的。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:max cai 回复日期:2003-08-05 15:39:30
<br>内容:是的,你的算法没问题,有问题的是你使用了“野指针”!<BR>char *key[5];是声明了一个指针数组,可是它们指向哪里呢?——谁都不知道的!<BR>for(i=0;i<len;i++) <BR> gets(key[i]);<BR>你把那些输入的字符串放到内存的哪块地方呢,你能保证不是放在同一个单元里面?<BR>所以你该先对它们开一块区域:<BR>#include<stdio.h><BR>#include<string.h><BR>#include<stdlib.h><BR>void main()<BR>{<BR> char *key[5];<BR> char **p,*temp;<BR> int i,j,k;<BR><BR> int len=5;<BR> for(i=0;i<len;i++)<BR> key[i]=(char*)malloc(sizeof(char [20])); <BR> for(i=0;i<len;i++) <BR> gets(key[i]);<BR> p=key;<BR> for (i=0;i<len-1;i++)<BR> {<BR> k=i;<BR> for (j=i+1;j<len;j++)<BR> {<BR> if (strcmp(*(p+k),*(p+j))>0) <BR> {<BR> k=j;<BR> }<BR> <BR> }<BR> if (k!=i)<BR> {<BR> <BR> temp =*(p+i);<BR> *(p+i)=*(p+k);<BR> *(p+k)=temp;<BR> <BR> }<BR> }<BR> for (i=0;i<len;i++)<BR> {<BR> printf ("%s\n",*(p+i));<BR> <BR> }<BR>}<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:段与 回复日期:2003-08-05 15:40:53
<br>内容:帮忙改一下啊。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:段与 回复日期:2003-08-05 15:48:45
<br>内容:谢了!!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:段与 回复日期:2003-08-05 17:35:52
<br>内容:两个for语句可以合在一起。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:kf 回复日期:2003-08-06 07:43:46
<br>内容:c++<BR>是就不建议用malloc了
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -