﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-天之道-随笔分类-Programming</title><link>http://www.cppblog.com/zhenglinbo/category/18717.html</link><description>享受编程的乐趣。</description><language>zh-cn</language><lastBuildDate>Wed, 12 Dec 2012 02:49:12 GMT</lastBuildDate><pubDate>Wed, 12 Dec 2012 02:49:12 GMT</pubDate><ttl>60</ttl><item><title>动态规划解决最长公共子串问题</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/12/07/196063.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Thu, 06 Dec 2012 17:28:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/12/07/196063.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/196063.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/12/07/196063.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/196063.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/196063.html</trackback:ping><description><![CDATA[<div>设序列X={x1,x2,x3......xm}和Y={y1,y2,y3,....yn}，要求最长公共子序列，可以按照下面方式递归计算，：当xm=yn时，找出Xm-1和Yn-1的最长公共子序列，然后在其尾部加上xm即可得到X和Y的最长公共子序列，当xm不等于yn的时候，必须解决两个子问题即找出Xm-1和Y的最长公共子序列和Yn-1和X的最长工公共子序列，然后这两个里面较长者为X和Y的最长公共子序列！</div><div>首先建立子问题的最优值递归关系。用C[i][j]表示Xi和Yj的最长公共子序列的长度。其中，Xi={x1,x2,x3......xi},Yj={y1,y2,y3,....yn}，当i=0或者j=0时空序列是Xi和Yj的最长公共子序列，故因此，C[i][j]=0，即有</div><div>代码如下：</div><div>&nbsp;</div><div>C[i][j]=0，（i=0,j=0)</div><div>C[i][j]=c[i-1][j-1]+1,xi=yj</div><div>C[i][j]=max(C[i][j-1],C[i-1][j]),i,j&gt;0,xi不等于yj<span style="font-size: 12px;">述</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">最长公共子串（Longest common substring, 简称LCS）问题指的是求出给定的一组</span></div><div><span style="font-size: 12px;">字符串的长度最大的共有的子字符串。&nbsp;</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;举例说明，以下三个字符串的LCS就是 cde：&nbsp;</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;abcde &nbsp;</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;cdef &nbsp;</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp;ccde</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">现在的情况是给你2个字符串，请找到他们的LCS</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">请注意：字符可以不相邻；</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">输入</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">输入第一行包含一个整数T，表示有T组数据；</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">对于每组数据包含2行，每行包含一个非空字符串，长度不超过1000个字符</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">输出</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">对于每组数据输出他们的LCS的长度，保证每组数据存在LCS；</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">样例输入</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">2</span></div><div><span style="font-size: 12px;">abcde</span></div><div><span style="font-size: 12px;">cdef</span></div><div><span style="font-size: 12px;">aaaaaaa</span></div><div><span style="font-size: 12px;">aaabaaa</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">样例输出</span></div><div><span style="font-size: 12px;">3</span></div><div><span style="font-size: 12px;">6</span></div><div><span style="font-size: 12px;"><br style="font-size: 14pt;" /></span></div><div><span style="font-size: 14pt;"><strong>分析：</strong></span><span style="font-size: 12px;"><br /></span><div><em><strong>设序列X={x1,x2,x3......xm}和Y={y1,y2,y3,....yn}，要求最长公共子序列，可以按照下面方式递归计算，：当xm=yn时，找出Xm-1和Yn-1的最长公共子序列，然后在其尾部加上xm即可得到X和Y的最长公共子序列，当xm不等于yn的时候，必须解决两个子问题即找出Xm-1和Y的最长公共子序列和Yn-1和X的最长工公共子序列，然后这两个里面较长者为X和Y的最长公共子序列！</strong></em></div><div><em><strong>首先建立子问题的最优值递归关系。用C[i][j]表示Xi和Yj的最长公共子序列的长度。其中，Xi={x1,x2,x3......xi},Yj={y1,y2,y3,....yn}，当i=0或者j=0时空序列是Xi和Yj的最长公共子序列，故因此，C[i][j]=0，即有</strong></em></div><div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->C[i][j]=0，（i=0,j=0)<br />C[i][j]=c[i-1][j-1]+1,xi=yj<br />C[i][j]=max(C[i][j-1],C[i-1][j]),i,j&gt;0,xi不等于yj</div><br />实现代码如下：<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br />#include&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br /><span style="color: #0000FF; ">int</span>&nbsp;c[1002][1002]={0};<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;N,m,n,i,j;<br />&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;x[1002],y[1002];<br />&nbsp;&nbsp;scanf("%d",&amp;N);<br />&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(N--)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%s",x);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%s",y);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m=strlen(x);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n=strlen(y);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=1;i&lt;=m;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(j=1;j&lt;=n;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(x[i-1]==y[j-1])&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c[i][j]=c[i-1][j-1]+1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>(c[i-1][j]&gt;=c[i][j-1])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c[i][j]=c[i-1][j];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c[i][j]=c[i][j-1];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d\n",c[m][n]);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><br />参考自：<span style="font-size: 12px;">http://yangchuanhuahpu.blog.163.com/blog/static/18631884020125272205862/</span><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></div></div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/196063.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-12-07 01:28 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/12/07/196063.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最长重复子串</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/12/05/196012.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Wed, 05 Dec 2012 09:58:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/12/05/196012.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/196012.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/12/05/196012.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/196012.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/196012.html</trackback:ping><description><![CDATA[<div></div><div><span style="font-size: 12px;">描述</span></div><div><span style="font-size: 12px;">对于一个字符串S1，其中S2是他的一个子串（长度严格小于S1长度），如果S2在S1中出现次数超过1次，那么S2就是一个重复子串，现在的要求是给定S1，请求出他的最长重复子串；</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">如果有多个长度一样的最长子串，请输入字典序最小那个串；</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">比如bbbaaaccc</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">那么最长子串就是aa</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">输入</span></div><div><span style="font-size: 12px;">第一行包含一个整数T，表示有T组数据</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">对于每组数据包含一行，该行有一个字符串，长度小于10,000</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">输出</span></div><div><span style="font-size: 12px;">对于每组数据请输出他的最长重复子串，保证每组数据都有；</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">样例输入</span></div><div><span style="font-size: 12px;">2</span></div><div><span style="font-size: 12px;">abacabac</span></div><div><span style="font-size: 12px;">abacabbac</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">样例输出</span></div><div><span style="font-size: 12px;">abac</span></div><div><span style="font-size: 12px;">bac<br /><br />代码测试通过（普通版）：<br /><br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br />#include&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br /><span style="color: #0000FF; ">#define</span>&nbsp;N&nbsp;10000<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;a[N];<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,j,n,t,p,max,t1;<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d",&amp;t1);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(t1--)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;max&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf("%s",a);<br />&nbsp;&nbsp;&nbsp;&nbsp;n=strlen(a);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;i&lt;n;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(j=i+1;j&lt;n;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(a[i+t]==a[j+t]&amp;&amp;(j+t)&lt;n)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(t&gt;max)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max=t;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p=i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>(t&nbsp;==&nbsp;max)&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">如果有长度一样的最长重复子串，那么比较它们的字典序</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(a[i]&lt;a[p])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max&nbsp;=&nbsp;t;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;=&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=p;i&lt;p+max;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%c",a[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("\n");<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><span style="font-size: 12px;">普通算法效率较低，为O(n</span>&#178;）。<br /><br /><span style="font-size: 12px;"><br /></span><span style="font-size: 12px;">第二种方法是用后缀数组实现。转自：</span><span style="font-size: 12px;">http://hi.baidu.com/qwertlooker/item/44f3fe52ad772cdbd58bacfd</span><span style="font-size: 12px;"><br /><br /></span><div>如果程序至多可以处理MAXN个字符，这些字符被存储在数组c中：</div><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">#define</span>&nbsp;MAXN&nbsp;5000000<br /><span style="color: #0000FF; ">char</span>&nbsp;c[MAXN],&nbsp;*a[MAXN];</div></div><div>&nbsp;在读取输入时，首先初始化a,这样，每个元素就都指向输入字符串中的相应字符：</div><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">while</span>&nbsp;(ch&nbsp;=&nbsp;getchar())&nbsp;!=&nbsp;EOF<br />a[n]&nbsp;=&nbsp;&amp;c[n];<br />c[n++]&nbsp;=&nbsp;ch;<br />c[n]&nbsp;=&nbsp;0&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">将数组c中的最后一个元素设为空字符，以终止所有字符串</span></div></div><div>这样，元素a[0]指向整个字符串，下一个元素指向以第二个字符开始的数组的后缀，等等。如若输入字符串为"banana",该数组将表示这些后缀：<br />a[0]:banana</div><div>a[1]:anana</div><div>a[2]:nana</div><div>a[3]:ana</div><div>a[4]:na</div><div>a[5]:a</div><div>由于数组a中的指针分别指向字符串中的每个后缀，所以将数组a命名为"后缀数组"<br /></div><div>第二，对后缀数组进行快速排序，以将后缀相近的（变位词）子串集中在一起</div><div>qsort(a, n, sizeof(char*), pstrcmp)后</div><div>a[0]:a</div><div>a[1]:ana</div><div>a[2]:anana</div><div>a[3]:banana</div><div>a[4]:na</div><div>a[5]:nana<br /></div><div>第三，使用以下comlen函数对数组进行扫描比较邻接元素，以找出最长重复的字符串：</div><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">for</span>&nbsp;i&nbsp;=&nbsp;[0,&nbsp;n)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;comlen(a[i],&nbsp;a[i+1])&nbsp;&gt;&nbsp;maxlen<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxlen&nbsp;=&nbsp;comlen(a[i],&nbsp;a[i+1])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxi&nbsp;=&nbsp;i<br />printf("%.*s\n",&nbsp;maxlen,&nbsp;a[maxi])</div></div><div>由于少了内层循环，只是多了一次排序，因此该算法的运行时间为O(n logn). （nlogn比n大，取nlogn）<br /><br />实现代码如下：<br /><br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&nbsp;&lt;stdio.h&gt;<br />#include&nbsp;&lt;stdlib.h&gt;<br />#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br /><br /><span style="color: #0000FF; ">#define</span>&nbsp;MAXCHAR&nbsp;10000&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">最长处理10000个字符</span><br /><br /><span style="color: #0000FF; ">char</span>&nbsp;c[MAXCHAR],&nbsp;*a[MAXCHAR];<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;comlen(&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;*p,&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;*q&nbsp;){&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">计算最长重复子串的长度</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(&nbsp;*p&nbsp;&amp;&amp;&nbsp;(*p++&nbsp;==&nbsp;*q++)&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;++i;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;i;<br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;pstrcmp(&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;*p1,&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;*p2&nbsp;){<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;strcmp(&nbsp;*(<span style="color: #0000FF; ">char</span>*&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;*)p1,&nbsp;*(<span style="color: #0000FF; ">char</span>*&nbsp;<span style="color: #0000FF; ">const</span>*)p2&nbsp;);<br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main(&nbsp;){<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;t;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;ch;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,&nbsp;temp;<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d\n",&amp;t);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(t--)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;n=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;maxlen=0,&nbsp;maxi=0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(&nbsp;(ch=getchar())!='\n'&nbsp;){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[n]=&amp;c[n];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c[n++]=ch;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;c[n]='\0';<br />&nbsp;&nbsp;&nbsp;&nbsp;qsort(&nbsp;a,&nbsp;n,&nbsp;<span style="color: #0000FF; ">sizeof</span>(<span style="color: #0000FF; ">char</span>*),&nbsp;pstrcmp&nbsp;);&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">快速排序对后缀数组进行排序，以使后缀相同的子串集中在一起，<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">以便接下来comlen函数对这些子串进行计算其最长重复子串</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;&nbsp;i&lt;n-1;&nbsp;++i&nbsp;){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp=comlen(&nbsp;a[i],&nbsp;a[i+1]&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(&nbsp;temp&gt;maxlen&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxlen=temp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxi=i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("%.*s\n",maxlen,&nbsp;a[maxi]);&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">输出最长重复子串</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br /><br />第三种方法似乎可以用后缀树实现，效率可以提高到O(n)，具体的后缀树讲解可以参照这篇文章：<br /><span style="font-size: 12px;">http://blog.csdn.net/v_july_v/article/details/6897097（PS:智商有限，后面部分讲解理解不了）</span></div></div></div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/196012.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-12-05 17:58 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/12/05/196012.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>二叉树之数组存储</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/10/16/193389.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Tue, 16 Oct 2012 15:47:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/10/16/193389.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/193389.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/10/16/193389.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/193389.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/193389.html</trackback:ping><description><![CDATA[<div><span style="font-size: 12px;">二叉树可以采用数组的方法进行存储，把数组中的数据依次自上而下,自左至右存储到二叉树结点中，一般二叉树与完全二叉树对比，比完全二叉树缺少的结点就在数组中用0来表示</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">结点存储的数据均为非负整数</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">Input</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">第一行输入一个整数t，表示有t个二叉树</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">第二行起，每行输入一个数组，先输入数组长度，再输入数组内数据，每个数据之间用空格隔开，输入的数据都是非负整数</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">连续输入t行</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">Output</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">每行输出一个示例的先序遍历结果，每个结点之间用空格隔开</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">Sample Input</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">3</span></div><div><span style="font-size: 12px;">3 1 2 3</span></div><div><span style="font-size: 12px;">5 1 2 3 0 4</span></div><div><span style="font-size: 12px;">13 1 2 3 4 0 5 6 7 8 0 0 9 10</span></div><div><span style="font-size: 12px;">Sample Output</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">1 2 3&nbsp;</span></div><div><span style="font-size: 12px;">1 2 4 3&nbsp;</span></div><div><span style="font-size: 12px; ">1 2 4 7 8 3 5 9 10 6&nbsp;<br /><br />分析：</span><span style="font-size: 12px; ">这道题的关键在于：设定数组位置从1开始编号，那么位置为i的结点，它的左孩子在数组的位置是2i，右孩子在数组的位置是2i+1</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">这道题的难点在把树建立起来，其他都容易。</span><br /><br /><span style="font-size: 12px;">代码：</span><br /><font size="2"><br /></font></div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all">#include&nbsp;&lt;iostream&gt;&nbsp;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br /><span style="color: #0000FF; ">class</span>&nbsp;BiTreeNode<br />{<br /><br /><span style="color: #0000FF; ">private</span>:<br /><br />&nbsp;BiTreeNode&nbsp;&nbsp;*leftChild;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">左子树指针</span><span style="color: #008000; "><br /></span><br />&nbsp;BiTreeNode&nbsp;&nbsp;*rightChild;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">右子树指针</span><span style="color: #008000; "><br /></span><br /><span style="color: #0000FF; ">public</span>:<br /><br />&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;&nbsp;data;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">数据域<br /><br /><br />&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">构造函数和析构函数</span><span style="color: #008000; "><br /></span><br />&nbsp;BiTreeNode():leftChild(NULL),&nbsp;rightChild(NULL){}<br /><br />&nbsp;BiTreeNode(<span style="color: #0000FF; ">int</span>&nbsp;&nbsp;item,&nbsp;BiTreeNode&nbsp;&nbsp;*left&nbsp;=&nbsp;NULL,&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;BiTreeNode&nbsp;&nbsp;*right&nbsp;=&nbsp;NULL):<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;data(item),&nbsp;leftChild(left),&nbsp;rightChild(right){}<br /><br />&nbsp;~BiTreeNode(){}<br /><br /><br />&nbsp;BiTreeNode&nbsp;&nbsp;*&nbsp;&amp;Left(<span style="color: #0000FF; ">void</span>)&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">注意返回值类型为指针的引用类型</span><span style="color: #008000; "><br /></span><br />&nbsp;&nbsp;{<span style="color: #0000FF; ">return</span>&nbsp;leftChild;}<br /><br />&nbsp;BiTreeNode&nbsp;&nbsp;*&nbsp;&amp;Right(<span style="color: #0000FF; ">void</span>)&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">注意返回值类型为指针的引用类型</span><span style="color: #008000; "><br /></span><br />&nbsp;&nbsp;{<span style="color: #0000FF; ">return</span>&nbsp;rightChild;}<br /><br />};<br /><br /><br /><br /><br /><span style="color: #0000FF; ">class</span>&nbsp;BiTree<br /><br />{<br /><br /><span style="color: #0000FF; ">private</span>:<br /><br />&nbsp;BiTreeNode&nbsp;&nbsp;*root;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">根结点指针</span><span style="color: #008000; "><br /></span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,len;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">len是树结点的数量</span><span style="color: #008000; "><br /></span><br />&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;Destroy(BiTreeNode&nbsp;&nbsp;*&nbsp;&amp;t);<br /><br />&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;PreOrder(BiTreeNode&nbsp;&nbsp;*&nbsp;&amp;t);<br /><br />&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;&nbsp;CreateBiTree(BiTreeNode&nbsp;*&nbsp;&amp;T,<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;arrTree[],<span style="color: #0000FF; ">int</span>&nbsp;pos);<br /><br /><span style="color: #0000FF; ">public</span>:<br /><br />&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">构造函数和析构函数</span><span style="color: #008000; "><br /></span><br />&nbsp;BiTree(<span style="color: #0000FF; ">void</span>):root(NULL),i(0){};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">构造函数</span><span style="color: #008000; "><br /></span><br />&nbsp;~BiTree(<span style="color: #0000FF; ">void</span>){};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">析构函数<br /><br /><br />&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">构造二叉树</span><span style="color: #008000; "><br /></span><br />&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;MakeTree(<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;arrTree[],<span style="color: #0000FF; ">int</span>&nbsp;num);&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">构造二叉树，利用先序遍历结果建树</span><span style="color: #008000; "><br /></span><br />&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;Destroy(<span style="color: #0000FF; ">void</span>);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">销毁二叉树</span><span style="color: #008000; "><br /></span><br /><br />&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;PreOrder();&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">前序遍历&nbsp;</span><span style="color: #008000; "><br /></span><br />};<br /><br /><br /><span style="color: #008000; ">//</span><span style="color: #008000; ">2、定义销毁函数</span><span style="color: #008000; "><br /></span><br /><span style="color: #0000FF; ">void</span>&nbsp;BiTree&nbsp;::Destroy(<span style="color: #0000FF; ">void</span>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">销毁二叉树，公有函数</span><span style="color: #008000; "><br /></span><br />{<br /><br />&nbsp;Destroy(root);<br /><br />}<br /><br /><br /><span style="color: #0000FF; ">void</span>&nbsp;BiTree&nbsp;::Destroy(BiTreeNode&nbsp;&nbsp;*&nbsp;&amp;t)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /><span style="color: #008000; ">//</span><span style="color: #008000; ">销毁二叉树，私有函数供共有函数调用</span><span style="color: #008000; "><br /></span><br />{<br /><br />&nbsp;<span style="color: #0000FF; ">if</span>(t&nbsp;!=&nbsp;NULL&nbsp;&amp;&amp;&nbsp;t-&gt;Left()&nbsp;!=&nbsp;NULL)<br /><br />&nbsp;&nbsp;Destroy(t-&gt;Left());<br /><br /><br />&nbsp;<span style="color: #0000FF; ">if</span>(t&nbsp;!=&nbsp;NULL&nbsp;&amp;&amp;&nbsp;t-&gt;Right()&nbsp;!=&nbsp;NULL)<br /><br />&nbsp;&nbsp;Destroy(t-&gt;Right());<br /><br /><br />&nbsp;<span style="color: #0000FF; ">if</span>(t&nbsp;!=&nbsp;NULL)<br /><br />&nbsp;{<br />&nbsp;&nbsp;delete&nbsp;t;<br />&nbsp;}<br /><br />}<br /><br /><br /><span style="color: #008000; ">//</span><span style="color: #008000; ">3、定义建树函数</span><span style="color: #008000; "><br /></span><br /><span style="color: #0000FF; ">void</span>&nbsp;BiTree::MakeTree(<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;arrTree[],<span style="color: #0000FF; ">int</span>&nbsp;num)<br /><br /><span style="color: #008000; ">//</span><span style="color: #008000; ">构造二叉树，利用先序遍历结果建树，公有函数</span><span style="color: #008000; "><br /></span><br />{<br /><br />&nbsp;&nbsp;&nbsp;i=0;<br />&nbsp;&nbsp;&nbsp;len&nbsp;=&nbsp;num;<br /><br />&nbsp;&nbsp;&nbsp;CreateBiTree(root,arrTree,1);<span style="color: #008000; ">//</span><span style="color: #008000; ">数组位置从1开始</span><span style="color: #008000; "><br /></span><br />}<br /><br /><br /><span style="color: #0000FF; ">void</span>&nbsp;BiTree::CreateBiTree(BiTreeNode&nbsp;*&nbsp;&amp;T,&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;arrTree[],<span style="color: #0000FF; ">int</span>&nbsp;pos)&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">递归建树私有函数</span><span style="color: #008000; "><br /></span><br />{<br /><br />&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ch;<br /><br />&nbsp;ch=arrTree[pos];&nbsp;<br /><br />&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(ch&nbsp;==&nbsp;0&nbsp;||&nbsp;pos&nbsp;&gt;&nbsp;len)&nbsp;T&nbsp;=&nbsp;NULL;<br /><br />&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<br /><br />&nbsp;{<br /><br />&nbsp;&nbsp;T=<span style="color: #0000FF; ">new</span>&nbsp;BiTreeNode();<br /><br />&nbsp;&nbsp;T-&gt;data&nbsp;=&nbsp;ch;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;生成根结点</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;i++;<br />&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(i&gt;len)&nbsp;<span style="color: #0000FF; ">return</span>;<br /><br />&nbsp;&nbsp;CreateBiTree(T-&gt;Left(),&nbsp;arrTree,2*pos);&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;构造左子树</span><span style="color: #008000; "><br /></span><br />&nbsp;&nbsp;CreateBiTree(T-&gt;Right(),&nbsp;arrTree,2*pos+1);&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;构造右子树</span><span style="color: #008000; "><br /></span><br />&nbsp;&nbsp;&nbsp;}&nbsp;<br /><br />}<br /><br /><span style="color: #008000; ">//</span><span style="color: #008000; ">4、定义先序遍历函数</span><span style="color: #008000; "><br /></span><br /><span style="color: #0000FF; ">void</span>&nbsp;BiTree::PreOrder()<br /><br /><span style="color: #008000; ">//</span><span style="color: #008000; ">前序遍历访问二叉树，公有函数</span><span style="color: #008000; "><br /></span><br />{<br /><br />&nbsp;PreOrder(root);<br /><br />}<br /><br /><br /><span style="color: #0000FF; ">void</span>&nbsp;BiTree::PreOrder(BiTreeNode*&nbsp;&amp;t)<br /><br /><span style="color: #008000; ">//</span><span style="color: #008000; ">前序遍历访问二叉树，私有函数t</span><span style="color: #008000; "><br /></span><br />{<br /><br /><br />&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(t!=NULL)<span style="color: #008000; ">//</span><span style="color: #008000; ">若二叉树结点不为空，执行如下操作：</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;t-&gt;data&lt;&lt;"&nbsp;";<span style="color: #008000; ">//</span><span style="color: #008000; ">1、输出当前结点的数据，表示该结点被访问了</span><span style="color: #008000; "><br /></span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PreOrder(t-&gt;Left());<span style="color: #008000; ">//</span><span style="color: #008000; ">2、先序遍历该结点的左孩子</span><span style="color: #008000; "><br /></span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PreOrder(t-&gt;Right());<span style="color: #008000; ">//</span><span style="color: #008000; ">3、先序遍历该结点的右孩子</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;}<br /><br /><br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;m,i,j,k;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;*arrTree;<br />&nbsp;&nbsp;&nbsp;&nbsp;BiTree&nbsp;myTree;<br />&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;m;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;i&lt;m;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arrTree&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;<span style="color: #0000FF; ">int</span>[800];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;k;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(j=1;j&lt;=k;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;arrTree[j];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myTree.MakeTree(arrTree,k);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myTree.PreOrder();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete&nbsp;[]arrTree;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myTree.Destroy();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/193389.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-10-16 23:47 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/10/16/193389.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简单表达式求值</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/10/08/193011.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Mon, 08 Oct 2012 09:25:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/10/08/193011.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/193011.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/10/08/193011.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/193011.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/193011.html</trackback:ping><description><![CDATA[<div><span style="font-size: 12px;">描述</span></div><div><span style="font-size: 12px;">给一些包含加减号和小括号的表达式，求出该表达式的值。表达式中的数值均为绝对值小于 10 的整数。</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">输入</span></div><div><span style="font-size: 12px;">第一行为表达式的个数 n，以下 n 行每行有一个表达式。每个表达式的长度不超过 20 个字符。</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">输出</span></div><div><span style="font-size: 12px;">对每个表达式，输出它的值。</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">样例输入</span></div><div><span style="font-size: 12px;">3</span></div><div><span style="font-size: 12px;">3-(2+3)</span></div><div><span style="font-size: 12px;">-9+8+(2+3)-(-1+4)</span></div><div><span style="font-size: 12px;">0-0</span></div><div><span style="font-size: 12px;">样例输出</span></div><div><span style="font-size: 12px;">-2</span></div><div><span style="font-size: 12px;">1</span></div><div><span style="font-size: 12px; ">0<br /><br /></span><div style="font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; border-image: initial; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; background-color: #eeeeee; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">//</span><span style="color: #008000; ">对每种情况都要考虑清楚</span><span style="color: #008000; "><br /></span><br />#include&nbsp;&lt;cctype&gt;<br />#include&nbsp;&lt;iostream&gt;<br />#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>&gt;<br />#include&nbsp;&lt;stack&gt;<br />#include&nbsp;&lt;map&gt;<br /><br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;getPrecedence(<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;optr)&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">给各个操作符定义优先级顺序，利用map容器</span><span style="color: #008000; "><br /></span>{<br />&nbsp;&nbsp;&nbsp;&nbsp;map&lt;<span style="color: #0000FF; ">char</span>,&nbsp;<span style="color: #0000FF; ">int</span>&gt;&nbsp;precedTable;<br />&nbsp;&nbsp;&nbsp;&nbsp;precedTable['#']&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;precedTable[')']&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;precedTable['+']&nbsp;=&nbsp;2;<br />&nbsp;&nbsp;&nbsp;&nbsp;precedTable['-']&nbsp;=&nbsp;2;<br />&nbsp;&nbsp;&nbsp;&nbsp;precedTable['*']&nbsp;=&nbsp;3;<br />&nbsp;&nbsp;&nbsp;&nbsp;precedTable['/']&nbsp;=&nbsp;3;<br />&nbsp;&nbsp;&nbsp;&nbsp;precedTable['(']&nbsp;=&nbsp;10;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;precedTable[optr];<br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;calculate(<span style="color: #0000FF; ">int</span>&nbsp;a,&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;optr,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;b)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">switch</span>&nbsp;(optr)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;'+':&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;a&nbsp;+&nbsp;b;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;'-':&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;a&nbsp;-&nbsp;b;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;'*':&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;a&nbsp;*&nbsp;b;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;'/':&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;a&nbsp;/&nbsp;b;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">default</span>:&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;evaluate(<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">string</span>&amp;&nbsp;expr)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;stack&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;opnd;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;stack&lt;<span style="color: #0000FF; ">char</span>&gt;&nbsp;optr;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;last_ch&nbsp;=&nbsp;'\0';&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">每次检查字符时的前一个字符</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(size_t&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;!=&nbsp;expr.size();&nbsp;++i)&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;ch&nbsp;=&nbsp;expr[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(isspace(ch))&nbsp;{&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">如果是空格，即跳过</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">continue</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(isdigit(ch))&nbsp;{&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">如果是数字，则压入操作数栈</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opnd.push(ch&nbsp;-&nbsp;'0');<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;((ch&nbsp;==&nbsp;'-'&nbsp;&nbsp;||&nbsp;ch&nbsp;==&nbsp;'+')&nbsp;&amp;&amp;&nbsp;(last_ch&nbsp;==&nbsp;'\0'&nbsp;||&nbsp;last_ch&nbsp;==&nbsp;'('))&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">遇到&nbsp;'+'、'-'，则压入0进操作数栈</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opnd.push(0);&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">如&nbsp;7-1，遇'-'则压入0进栈，，'-'则进操作符栈，遇到下一个数1，计算0-1得-1</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(optr.empty()&nbsp;||&nbsp;ch&nbsp;==&nbsp;'('&nbsp;||&nbsp;(optr.top()&nbsp;==&nbsp;'('&nbsp;&amp;&amp;&nbsp;ch&nbsp;!=&nbsp;')')&nbsp;||&nbsp;getPrecedence(ch)&nbsp;&gt;&nbsp;getPrecedence(optr.top()))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;optr.push(ch);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(!optr.empty()&nbsp;&amp;&amp;&nbsp;optr.top()&nbsp;!=&nbsp;'('&nbsp;&amp;&amp;&nbsp;getPrecedence(ch)&nbsp;&lt;=&nbsp;getPrecedence(optr.top()))&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;b&nbsp;=&nbsp;opnd.top();&nbsp;opnd.pop();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;a&nbsp;=&nbsp;opnd.top();&nbsp;opnd.pop();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opnd.push(calculate(a,&nbsp;optr.top(),&nbsp;b));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;optr.pop();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(ch&nbsp;==&nbsp;')')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;optr.pop();&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;optr.push(ch);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last_ch&nbsp;=&nbsp;ch;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(!optr.empty())&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;b&nbsp;=&nbsp;opnd.top();&nbsp;opnd.pop();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;a&nbsp;=&nbsp;opnd.top();&nbsp;opnd.pop();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opnd.push(calculate(a,&nbsp;optr.top(),&nbsp;b));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;optr.pop();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;result&nbsp;=&nbsp;opnd.top();&nbsp;opnd.pop();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;result;<br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;n;<br />&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;n;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(n--&nbsp;&gt;&nbsp;0)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;expr;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;expr;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;evaluate(expr)&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br /></div></div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/193011.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-10-08 17:25 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/10/08/193011.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>找出中间数（C++快排函数使用）</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/09/23/191722.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sun, 23 Sep 2012 09:18:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/09/23/191722.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/191722.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/09/23/191722.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/191722.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/191722.html</trackback:ping><description><![CDATA[<div><span style="font-size: 12px;">Totalsubmit: 790 &nbsp; Accepted: 47 &nbsp;</span></div><div><span style="font-size: 12px;">Description</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">一天，农夫乔伊像往常一样来到了他的牧场，他突然对他的奶牛产奶量产生了兴趣。</span></div><div><span style="font-size: 12px;">他想知道产奶量处于中间的那头奶牛的产奶量是多少，处于中间的意思是说，其中有一半牛的产奶量比它多，另一半牛的产奶量比它少。</span></div><div><span style="font-size: 12px;">&nbsp; &nbsp; 这个问题现在交由你来写程序完成！</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">Input</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">仅包括一组测试数据，第一行一个正整数N（1&lt;=N&lt;=10,000），接下来N行，每行一个正整数不会超过10^6，第i+1行的数字代表第i头牛的产奶量。</span></div><div><span style="font-size: 12px;">Output</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">产奶量处于中间的牛的产奶量。</span></div><div><span style="font-size: 12px;">Sample Input</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">5</span></div><div><span style="font-size: 12px;">1</span></div><div><span style="font-size: 12px;">2</span></div><div><span style="font-size: 12px;">4</span></div><div><span style="font-size: 12px;">5</span></div><div><span style="font-size: 12px;">3</span></div><div><span style="font-size: 12px;">Sample Output</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">3</span></div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;iostream&gt;<br />#include&lt;algorithm&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><span style="color: #0000FF; ">int</span>&nbsp;compare(<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;*&nbsp;a,<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;*&nbsp;b)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;*(<span style="color: #0000FF; ">int</span>*)a&nbsp;-&nbsp;*(<span style="color: #0000FF; ">int</span>*)b;<br />}<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;n,cow[10005];<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(cin&gt;&gt;n)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span>&nbsp;i=1;i&lt;=n;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;cow[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qsort(cow+1,n,<span style="color: #0000FF; ">sizeof</span>(<span style="color: #0000FF; ">int</span>),compare);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;cow[(n+1)/2]&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/191722.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-09-23 17:18 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/09/23/191722.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>计数问题</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/09/23/191721.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sun, 23 Sep 2012 08:35:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/09/23/191721.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/191721.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/09/23/191721.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/191721.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/191721.html</trackback:ping><description><![CDATA[<div><span style="font-size: 12px;">给你两个数a和b,你的任务是计算出1在a和b之间出现的次数,比如说，如果a=1024,b=1032，那么a和b之间的数就是：</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">1024 1025 1026 1027 1028 1029 1030 1031 1032</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">则有10个1出现在这些数中。</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">Input</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">输入不会超过500行。每一行有两个数a和b，a和b的范围是0 &lt; a, b &lt; 100000000。输入两个0时程序结束，两个0不作为输入样例。</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">Output</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">对于每一对输入的a和b，输出一个数，代表1出现的个数。</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">Sample Input</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">1 10</span></div><div><span style="font-size: 12px;">44 497</span></div><div><span style="font-size: 12px;">346 542</span></div><div><span style="font-size: 12px;">1199 1748</span></div><div><span style="font-size: 12px;">1496 1403</span></div><div><span style="font-size: 12px;">1004 503</span></div><div><span style="font-size: 12px;">1714 190</span></div><div><span style="font-size: 12px;">1317 854</span></div><div><span style="font-size: 12px;">1976 494</span></div><div><span style="font-size: 12px;">1001 1960</span></div><div><span style="font-size: 12px;">0 0</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">Sample Output</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">2</span></div><div><span style="font-size: 12px;">185</span></div><div><span style="font-size: 12px;">40</span></div><div><span style="font-size: 12px;">666</span></div><div><span style="font-size: 12px;">113</span></div><div><span style="font-size: 12px;">105</span></div><div><span style="font-size: 12px;">1133</span></div><div><span style="font-size: 12px;">512</span></div><div><span style="font-size: 12px;">1375</span></div><div><span style="font-size: 12px;">1256</span></div><br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br />#include&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br /><span style="color: #0000FF; ">int</span>&nbsp;Find_OneNum(<span style="color: #0000FF; ">long</span>&nbsp;a)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">long</span>&nbsp;i,b,count=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(a)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b=a%10;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(b&nbsp;==&nbsp;1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a=a/10;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;count;<br />}<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">long</span>&nbsp;a,b,i,sum;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>((scanf("%ld%ld",&amp;a,&amp;b)&nbsp;==&nbsp;2),a)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(a&gt;b)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;temp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp=a;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a=b;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b=temp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=a;i&lt;=b;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;+=&nbsp;Find_OneNum(i);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("%ld\n",sum);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/191721.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-09-23 16:35 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/09/23/191721.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>找出回文素数</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/09/22/191606.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sat, 22 Sep 2012 09:45:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/09/22/191606.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/191606.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/09/22/191606.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/191606.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/191606.html</trackback:ping><description><![CDATA[<br /><div>The number 151 is a prime palindrome because it is both a prime number and a palindrome (it is the same number when read forward as backward). Write a program that finds all prime palindromes in the range of two supplied numbers a and b (5 &lt;= a &lt; b &lt;= 1000,000,000); both a and b are considered to be within the range .</div><div>Input</div><div>Line 1: Two integers, a and b</div><div>Output</div><div>The list of palindromic primes in numerical order, one per line.</div><div>Sample Input</div><div>5 500</div><div>Sample Output</div><div>5</div><div>7</div><div>11</div><div>101</div><div>131</div><div>151</div><div>181</div><div>191</div><div>313</div><div>353</div><div>373</div><div>383</div><br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br />#include&lt;math.h&gt;<br />#include&lt;stdlib.h&gt;<br /><span style="color: #0000FF; ">int</span>&nbsp;i;<br /><span style="color: #0000FF; ">int</span>&nbsp;Is_Prime(<span style="color: #0000FF; ">int</span>&nbsp;a)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">double</span>&nbsp;t&nbsp;=&nbsp;a;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=2;i&lt;=sqrt(t);i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(a&nbsp;%&nbsp;i&nbsp;==&nbsp;0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;1;<br />}<br /><span style="color: #0000FF; ">int</span>&nbsp;diglen(<span style="color: #0000FF; ">int</span>&nbsp;c)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(c/10&nbsp;==&nbsp;0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;count=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(c)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c=c/10;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count++;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;count;<br />}<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;IntoStr(<span style="color: #0000FF; ">int</span>&nbsp;a,<span style="color: #0000FF; ">char</span>*&nbsp;str)&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">将数字转换为字符串</span><span style="color: #008000; "><br /></span>{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;h=&nbsp;diglen(a)-1,i=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(h+1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;k,c,d=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(k=0;k&lt;h;k++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=d*10;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;c=a/d;<span style="color: #008000; ">//</span><span style="color: #008000; ">取本次数字的最高位</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;str[i++]&nbsp;=&nbsp;c+48;<br />&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;=&nbsp;a%d;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">取余数</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;h--;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;str[i]='\0';&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">最后末尾加字符串结束符</span><span style="color: #008000; "><br /></span>}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;Is_Pal(<span style="color: #0000FF; ">int</span>&nbsp;b)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;len&nbsp;=&nbsp;diglen(b);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ok&nbsp;=&nbsp;1,j;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>*&nbsp;str&nbsp;=&nbsp;(<span style="color: #0000FF; ">char</span>*)malloc(<span style="color: #0000FF; ">sizeof</span>(<span style="color: #0000FF; ">char</span>)*(len+1));<br />&nbsp;&nbsp;&nbsp;&nbsp;IntoStr(b,str);&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">将数字转换为字符数组，也可以用itoa函数或 sprintf函数</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0,j=len-1;i&nbsp;&lt;&nbsp;len/2;i++,j--)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(str[i]&nbsp;!=&nbsp;str[j])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ok&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;free(str);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(ok&nbsp;==&nbsp;1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;a,b,j;<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d%d",&amp;a,&amp;b);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(j=a;j&lt;=b;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(Is_Prime(j)&nbsp;&amp;&amp;&nbsp;Is_Pal(j))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d\n",j);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/191606.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-09-22 17:45 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/09/22/191606.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>括号匹配</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/09/13/190522.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Thu, 13 Sep 2012 07:11:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/09/13/190522.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/190522.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/09/13/190522.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/190522.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/190522.html</trackback:ping><description><![CDATA[<div><span style="font-size: 12px;">在处理表达式过程中需要对括号匹配进行检验，括号匹配包括三种：&#8220;(&#8221;和&#8220;)&#8221;，&#8220;[&#8221;和&#8220;]&#8221;，&#8220;{&#8221;和&#8220;}&#8221;。例如表达式中包含括号如下：</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">(<span style="white-space:pre">	</span>)<span style="white-space:pre">	</span>[<span style="white-space:pre">	</span>(<span style="white-space:pre">	</span>)<span style="white-space:pre">	</span>(<span style="white-space:pre">	</span>[<span style="white-space:pre">	</span>]<span style="white-space:pre">	</span>)<span style="white-space:pre">	</span>]<span style="white-space:pre">	</span>{<span style="white-space:pre">	</span>}</span></div><div><span style="font-size: 12px;">1<span style="white-space:pre">	</span>2<span style="white-space:pre">	</span>3<span style="white-space:pre">	</span>4<span style="white-space:pre">	</span>5<span style="white-space:pre">	</span>6<span style="white-space:pre">	</span>7<span style="white-space:pre">	</span>8<span style="white-space:pre">	</span>9<span style="white-space:pre">	</span>10<span style="white-space:pre">	</span>11<span style="white-space:pre">	</span>12</span></div><div><span style="font-size: 12px;">从上例可以看出第1和第2个括号匹配，第3和第10个括号匹配，4和5匹配，6和9匹配，7和8匹配，11和12匹配。从中可以看到括号嵌套的的情况是比较复杂的，使用堆栈可以很方便的处理这种括号匹配检验，可以遵循以下规则：</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">1、 当接收第1个左括号，表示新的一组匹配检查开始；随后如果连续接收到左括号，则不断进堆栈。</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">2、 当接受第1个右括号，则和最新进栈的左括号进行匹配，表示嵌套中1组括号已经匹配消除</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">3、 若到最后，括号不能完全匹配，则说明输入的表达式有错</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">Input</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">第一行输入一个t，表示下面将有t组测试数据。接下来的t行的每行输入一个表达式，表达式只考虑英文半角状态输入，无需考虑中文全角输入</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">Output</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">对于每一行的表达式，检查括号是否匹配，匹配则输入ok，不匹配则输出error</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">Sample Input</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">2</span></div><div><span style="font-size: 12px;">(a+b)[4*5+(-6)]</span></div><div><span style="font-size: 12px;">[5*8]/{(a+b)-6</span></div><div><span style="font-size: 12px;">Sample Output</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">ok</span></div><div><span style="font-size: 12px;">error<br /><br /><br />代码：<br /><br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;iostream&gt;<br />#include&lt;cstring&gt;<br />#include&lt;stack&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;t,len;<br />&nbsp;&nbsp;&nbsp;&nbsp;stack&lt;<span style="color: #0000FF; ">char</span>&gt;&nbsp;mystack;<br />&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;t;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(t--)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ok=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;str[100];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;str;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;len=strlen(str);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span>&nbsp;i=0;i&lt;len;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">switch</span>(str[i])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;'(':<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;'[':<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;'{':<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mystack.push(str[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;')':<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(mystack.top()&nbsp;==&nbsp;'(')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mystack.pop();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ok=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;']':<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(mystack.top()&nbsp;==&nbsp;'[')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mystack.pop();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ok=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;'}':<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(mystack.top()&nbsp;==&nbsp;'{')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mystack.pop();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ok=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">default</span>:&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(ok&nbsp;&amp;&amp;&nbsp;mystack.empty())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"ok"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"error"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div></div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/190522.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-09-13 15:11 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/09/13/190522.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数制转换</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/09/13/190521.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Thu, 13 Sep 2012 07:10:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/09/13/190521.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/190521.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/09/13/190521.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/190521.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/190521.html</trackback:ping><description><![CDATA[<div><span style="font-size: 12px;">Description</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">对于任意十进制数转换为k进制，包括整数部分和小数部分转换。整数部分采用除k求余法，小数部分采用乘k取整法例如x=19.125，求2进制转换</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">整数部分19，<span style="white-space:pre">					</span>小数部分0.125</span></div><div><span style="font-size: 12px;">19 / 2 = 9 &#8230; 1<span style="white-space:pre">					</span>0.125 * 2 = 0.25 &#8230; 0</span></div><div><span style="font-size: 12px;">9 / 2 = 4 &#8230; 1<span style="white-space:pre">					</span>0.25 * 2 = 0.5 &nbsp; &#8230; 0</span></div><div><span style="font-size: 12px;">4 / 2 = 2 &#8230; 0 <span style="white-space:pre">					</span>0.5 * 2 = 1 &nbsp; &nbsp; &#8230; 1</span></div><div><span style="font-size: 12px;">2 / 2 = 1 &#8230; 0</span></div><div><span style="font-size: 12px;">1 / 2 = 0 &#8230; 1</span></div><div><span style="font-size: 12px;">所以整数部分转为 10011，小数部分转为0.001，合起来为10011.001 请用堆栈实现上述数制转换</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">Input</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">第一行输入一个t，表示下面将有t组测试数据。</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">接下来的t行的每行包含两个参数n（0&lt;n&lt;10000，且最多有8位小数）和k（1&lt;k&lt;=16），n表示要转换的数值，n可以带小数（也可以不带！），k表示要转换的数制，k必须是正整数。大于10的进制数据用A\B\C\D\E\F表示</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">Output</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">对于每一组测试数据，每行输出转换后的结果，小数部分大于8位的，只输出前8位小数</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">Sample Input</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">2</span></div><div><span style="font-size: 12px;">19.125 2</span></div><div><span style="font-size: 12px;">15.125 16</span></div><div><span style="font-size: 12px;">Sample Output</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">10011.001</span></div><div><span style="font-size: 12px;">F.2<br /><br /><br /><br />代码<br /></span><span style="background-color: #eeeeee; font-size: 13px; ">#include</span><span style="background-color: #eeeeee; font-size: 13px; ">&lt;</span><span style="background-color: #eeeeee; font-size: 13px; ">iostream</span><span style="background-color: #eeeeee; font-size: 13px; ">&gt;</span></div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all">#include&lt;stack&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;stack&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;mystack;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;t,m,k;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">double</span>&nbsp;b,a;<br />&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;t;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(t--)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;c,x[100],d=0,i=0,count=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;b&gt;&gt;k;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m=b;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a=b-m;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(m)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c=m%k;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m=m/k;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mystack.push(c);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d=a*k;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(d&gt;=k)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a=a*k;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x[i++]=d;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(!mystack.empty())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(mystack.top()&lt;10)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;mystack.top();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mystack.pop();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">switch</span>(mystack.top())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;10:&nbsp;cout&lt;&lt;"A";&nbsp;mystack.pop();&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;11:&nbsp;cout&lt;&lt;"B";&nbsp;mystack.pop();&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;12:&nbsp;cout&lt;&lt;"C";&nbsp;mystack.pop();&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;13:&nbsp;cout&lt;&lt;"D";&nbsp;mystack.pop();&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;14:&nbsp;cout&lt;&lt;"E";&nbsp;mystack.pop();&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">case</span>&nbsp;15:&nbsp;cout&lt;&lt;"F";&nbsp;mystack.pop();&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;".";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;i&lt;count;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;x[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/190521.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-09-13 15:10 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/09/13/190521.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>填充二维数组</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/19/187679.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sun, 19 Aug 2012 08:22:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/19/187679.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/187679.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/19/187679.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/187679.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/187679.html</trackback:ping><description><![CDATA[编写一程序，用0或1填充一个二维数组，如果i 和j 的最大公因子为1，则设a[i][j]为1；否则设为0。<br /><br />代码如下：<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br /><span style="color: #0000FF; ">#define</span>&nbsp;N&nbsp;10<br /><span style="color: #0000FF; ">int</span>&nbsp;Maxcom(<span style="color: #0000FF; ">int</span>&nbsp;a,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;b)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(a!=b)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(a&gt;b)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a=a-b;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>(b&gt;a)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b=b-a;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;a;<br />}<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;a[N][N];<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,j,max;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;i&lt;5;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(j=0;j&lt;5;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(i==1&nbsp;&amp;&amp;&nbsp;j==1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i][j]=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>(&nbsp;i&gt;0&nbsp;&amp;&amp;&nbsp;j&gt;0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max&nbsp;=&nbsp;Maxcom(i,j);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(max&nbsp;==&nbsp;1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i][j]=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i][j]=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i][j]=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;i&lt;5;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(j=0;j&lt;5;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d&nbsp;",a[i][j]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("\n");<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("\n");<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/187679.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-19 16:22 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/19/187679.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>字符串排序</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/19/187655.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sun, 19 Aug 2012 02:49:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/19/187655.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/187655.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/19/187655.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/187655.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/187655.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">//</span><span style="color: #008000; ">字符串排序，利用qsort函数</span><span style="color: #008000; "><br /></span>#include&lt;stdio.h&gt;<br />#include&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br />#include&lt;stdlib.h&gt;<br /><span style="color: #0000FF; ">#define</span>&nbsp;Nmax&nbsp;1000<br /><span style="color: #0000FF; ">#define</span>&nbsp;Mmax&nbsp;10000<br /><span style="color: #0000FF; ">char</span>&nbsp;buf[Mmax];&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;M=0;<br /><span style="color: #0000FF; ">int</span>&nbsp;compare(<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;*i,&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;*j)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;strcmp(*(<span style="color: #0000FF; ">char</span>&nbsp;**)i,&nbsp;*(<span style="color: #0000FF; ">char</span>&nbsp;**)j);<br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,&nbsp;N;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;*a[Nmax];<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(N=0;&nbsp;N&lt;Nmax;&nbsp;N++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[N]=&nbsp;&amp;buf[M];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(scanf("%s",&nbsp;a[N])&nbsp;==&nbsp;EOF)&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;M+=strlen(a[N])+1;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;qsort(a,N,<span style="color: #0000FF; ">sizeof</span>(<span style="color: #0000FF; ">char</span>*),compare);&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">四个参数分别代表：待排序的数组首地址，数组中待排序的元素数量，各元素占用的空间，排序函数（确定排序顺序）</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;i&lt;N;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%s\n",a[i]);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/187655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-19 10:49 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/19/187655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>计算最长空格序列的长度</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187615.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sat, 18 Aug 2012 13:59:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187615.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/187615.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187615.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/187615.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/187615.html</trackback:ping><description><![CDATA[编写一程序，确定一个给定字符串中最长的空格序列的长度。<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br />#include&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br /><span style="color: #0000FF; ">#define</span>&nbsp;N&nbsp;1000<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;a[N];<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,j,k=0,count[100]={0},max;<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("Input&nbsp;the&nbsp;a&nbsp;string:&nbsp;");&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">输入字符串</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;gets(a);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;a[i]!=0;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(a[i++]&nbsp;==&nbsp;'&nbsp;')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count[k]++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(a[i+1]!='&nbsp;')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(j=0;j&lt;k;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max=count[0];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(count[j]&lt;count[j+1])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max=count[j+1];<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("%d\n",max);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br />&nbsp; &nbsp;&nbsp;</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/187615.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-18 21:59 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187615.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>字符串中单个空格代替多个空格</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187614.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sat, 18 Aug 2012 13:44:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187614.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/187614.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187614.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/187614.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/187614.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;水题</span><span style="color: #008000; "><br /></span>#include&lt;stdio.h&gt;<br />#include&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br /><span style="color: #0000FF; ">#define</span>&nbsp;N&nbsp;1000<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;a[N];<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,j;<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("Input&nbsp;the&nbsp;a&nbsp;string:&nbsp;");&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">输入字符串</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;gets(a);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;a[i]!=0;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(a[i]&nbsp;==&nbsp;'&nbsp;'&nbsp;&amp;&amp;&nbsp;a[i+1]&nbsp;==&nbsp;'&nbsp;')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(j=i;a[j]!=0;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[j]=a[j+1];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("%s",a);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br />&nbsp; &nbsp;&nbsp;</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/187614.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-18 21:44 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187614.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>检测子串是否存在（2.0版本）</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187612.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sat, 18 Aug 2012 13:31:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187612.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/187612.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187612.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/187612.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/187612.html</trackback:ping><description><![CDATA[编写一个程序，输入一个字符串 a ，并且输入一组子串的序列，字符序列之间用空格隔开，打印出那些为字符串 a 的子串。（本次输入的子串不分先后，可以 a 的子串在前面，亦可非 a 的子串在前面)<br /><br />代码测试通过：<br /><br /><div style="font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; border-image: initial; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; background-color: #eeeeee; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br />#include&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br /><span style="color: #0000FF; ">#define</span>&nbsp;N&nbsp;1000<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;a[N],b[100];<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,j;<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("Input&nbsp;the&nbsp;a&nbsp;string:&nbsp;");&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">输入字符串</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;gets(a);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>((scanf("%s",b)) != EOF&nbsp;)&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">输入要检测的子串</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;a[i]!=0;i++)&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">开始检测</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(j=0;b[j]!=0;j++)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(a[i+j]!=b[j])&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">如果字符不匹配，则退出本次循环，进行第一层循环i+1</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(b[j]&nbsp;==&nbsp;'\0')&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">如果b[j]&nbsp;=&nbsp;'\0'，则说明字符匹配到了子串的最后，匹配成功，输出子串</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%s\n",b);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br /><br />输出结果实例：<br /><br /><img src="http://www.cppblog.com/images/cppblog_com/zhenglinbo/QQ截图20120818212929.jpg" width="267" height="96" alt="" /></div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/187612.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-18 21:31 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187612.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>检测子串是否存在</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187611.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sat, 18 Aug 2012 13:14:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187611.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/187611.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187611.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/187611.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/187611.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br />#include&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br /><span style="color: #0000FF; ">#define</span>&nbsp;N&nbsp;1000<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;a[N],b[N];<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,j=0,k,count=1,z;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;c=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("Input&nbsp;the&nbsp;a&nbsp;string:&nbsp;");&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">输入字符串</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;gets(a);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("Input&nbsp;the&nbsp;substring:&nbsp;");&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">输入检测的子串，按先a的子串，后非a的子串输入</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;gets(b);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;a[i]!=0;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;z=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(j=c;b[j]!=0;j++,z++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(a[i+z]!=&nbsp;b[j]&nbsp;&amp;&amp;&nbsp;b[j]!=&nbsp;'&nbsp;')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>(&nbsp;b[j]&nbsp;==&nbsp;'&nbsp;')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(k=c;k&lt;j;k++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%c",b[k]);&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">打印出子串，不是子串的不打印出</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("\n");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c=j+1;<span style="color: #008000; ">//</span><span style="color: #008000; ">跳脱空格</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br />&nbsp; &nbsp;&nbsp;</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/187611.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-18 21:14 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187611.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>回文字符串</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187599.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sat, 18 Aug 2012 07:20:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187599.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/187599.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187599.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/187599.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/187599.html</trackback:ping><description><![CDATA[编写一程序，检查一给定字符串是否是回文的程序（順读和倒读都是一样的字符串），不考虑空格。例如，对于字符串 if i had a hifi ，你的程序应该报告成功，否则打印失败。<br /><br />代码测试通过：<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br />#include&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br /><span style="color: #0000FF; ">#define</span>&nbsp;N&nbsp;1000<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;a[N];<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,n,m;<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("Input&nbsp;the&nbsp;string:&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;gets(a);<br />&nbsp;&nbsp;&nbsp;&nbsp;m=strlen(a);<br />&nbsp;&nbsp;&nbsp;&nbsp;n=strlen(a)/2;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;i&lt;n;i++,m--)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(a[i]&nbsp;==&nbsp;'&nbsp;')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(a[m-1]&nbsp;==&nbsp;'&nbsp;')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m--;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(a[i]&nbsp;!=&nbsp;a[m-1])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(&nbsp;i&nbsp;==&nbsp;n)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("succeed!\n");<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("No\n");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/187599.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-18 15:20 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187599.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>字符频率</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187580.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sat, 18 Aug 2012 03:43:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187580.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/187580.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187580.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/187580.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/187580.html</trackback:ping><description><![CDATA[编写一程序，接受一个字符串作为参数，并打印一张表。对于在字符串中出现的每个字符，该表给出该字符以及它的出现频率。<br /><br />代码测试通过：<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br /><span style="color: #0000FF; ">#define</span>&nbsp;N&nbsp;1000<font color="#0000ff"><br /></font><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;a[N];<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;b[N]={0};<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,c[N]={0};<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("Input&nbsp;the&nbsp;string:&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;gets(a);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;a[i]!='\0';i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b[a[i]]++;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;a[i]!=0;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(c[a[i]]&nbsp;==&nbsp;0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%c&nbsp;:&nbsp;%d\n",a[i],b[a[i]]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c[a[i]]=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("\n");<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/187580.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-18 11:43 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187580.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>字符串查找</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187577.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sat, 18 Aug 2012 03:15:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187577.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/187577.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187577.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/187577.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/187577.html</trackback:ping><description><![CDATA[找出单词在字符串中的位置<br /><br />代码：<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all">#include&lt;stdio.h&gt;&nbsp;<br /><span style="color: #0000FF; ">#define</span>&nbsp;N&nbsp;1000<br /><span style="color: #0000FF; ">#define</span>&nbsp;M&nbsp;100<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;a[N],&nbsp;b[M];<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,j,n;<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("Input&nbsp;the&nbsp;string:&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;gets(a);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("Input&nbsp;the&nbsp;word:&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;gets(b);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;a[i]!='\0';i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(j=0;b[j]!='\0';j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(a[i+j]!=b[j])&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(b[j]&nbsp;==&nbsp;'\0')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d&nbsp;",i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("\n");<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/187577.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-18 11:15 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/18/187577.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>链表节点数</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/17/187433.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Thu, 16 Aug 2012 17:43:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/17/187433.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/187433.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/17/187433.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/187433.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/187433.html</trackback:ping><description><![CDATA[编写一个返回循环链表中节点数的函数<br /><br />实现代码如下：<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br />#include&lt;stdlib.h&gt;<br />typedef&nbsp;<span style="color: #0000FF; ">struct</span>&nbsp;node&nbsp;*link;<br /><span style="color: #0000FF; ">struct</span>&nbsp;node{&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;item;&nbsp;link&nbsp;next;&nbsp;};<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;node_number(link&nbsp;p,<span style="color: #0000FF; ">int</span>&nbsp;n)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;count=0,i;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;i&lt;n-1;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p=p-&gt;next;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(p-&gt;item)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;item=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p=p-&gt;next;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count++;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;count;<br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,N;<br />&nbsp;&nbsp;&nbsp;&nbsp;link&nbsp;t=(link)malloc(<span style="color: #0000FF; ">sizeof</span>(node));<br />&nbsp;&nbsp;&nbsp;&nbsp;t-&gt;item=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;t-&gt;next=t;<br />&nbsp;&nbsp;&nbsp;&nbsp;link&nbsp;x=t;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=2;i&lt;=10;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x&nbsp;=&nbsp;(x-&gt;next=&nbsp;(link)malloc(<span style="color: #0000FF; ">sizeof</span>(node)));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x-&gt;item=i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x-&gt;next=t;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("Please&nbsp;input&nbsp;the&nbsp;order&nbsp;of&nbsp;node:&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d",&amp;N);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("total&nbsp;number&nbsp;of&nbsp;nodes&nbsp;is:&nbsp;%d\n",node_number(t,N));<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/187433.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-17 01:43 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/17/187433.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用循环链表解决约瑟夫问题</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/17/187428.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Thu, 16 Aug 2012 16:14:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/17/187428.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/187428.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/17/187428.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/187428.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/187428.html</trackback:ping><description><![CDATA[假设有N个人决定选出一个领导人，方法如下：所有人排成一个圆圈，按顺序数数，每隔第M个人出局，此时他两边的人靠拢重新形成圆圈。问题是找出哪一个人将会是最后剩下的那个人。我们希望打印出所有人的出局顺序和最后选出的领导人是哪一位。<br /><br />这个问题称为约瑟夫问题，可以利用链表解决。<br /><br />代码如下：<br /><br /><div style="font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; border-image: initial; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; background-color: #eeeeee; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;</span>&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">约瑟夫问题</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;</span>&nbsp;<span style="color: #008000; "></span><br /><span style="color: #008080; ">&nbsp;</span>&nbsp;#include&lt;stdio.h&gt;<br /><span style="color: #008080; ">&nbsp;</span>&nbsp;#include&lt;stdlib.h&gt;<br /><span style="color: #008080; ">&nbsp;</span>&nbsp;typedef&nbsp;<span style="color: #0000FF; ">struct</span>&nbsp;node&nbsp;*link;<br /><span style="color: #008080; ">&nbsp;</span>&nbsp;<span style="color: #0000FF; ">struct</span>&nbsp;node&nbsp;{&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;item;&nbsp;link&nbsp;next;&nbsp;};&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">定义结点</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;</span>&nbsp;<span style="color: #008000; "></span><span style="color: #0000FF; ">int</span>&nbsp;main()<br /><span style="color: #008080; ">&nbsp;</span>&nbsp;{<br /><span style="color: #008080; ">&nbsp;</span>&nbsp; &nbsp; <span style="color: #0000FF; ">int</span>&nbsp;i,N,M;<br />&nbsp; &nbsp; &nbsp;printf("Input&nbsp;N&nbsp;and&nbsp;M:&nbsp;");&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">N表示共有N个人，M表示每隔第M个人要出局</span><span style="color: #008000; "><br /></span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d%d",&amp;N,&amp;M);<br />&nbsp; &nbsp; &nbsp;link&nbsp;t&nbsp;=&nbsp;(link)malloc(<span style="color: #0000FF; ">sizeof</span>(node));&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">新建结点t</span><span style="color: #008000; "><br /></span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;link&nbsp;x=t;&nbsp;<br />&nbsp; &nbsp; &nbsp;t-&gt;item&nbsp;=&nbsp;1;&nbsp;t-&gt;next=t;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">创建一个代表1号的单个节点的循环链表</span><span style="color: #008000; "><br /></span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=2;i&lt;=N;i++)<br />&nbsp; &nbsp; &nbsp;{<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;x=(x-&gt;next=&nbsp;(link)malloc(<span style="color: #0000FF; ">sizeof</span>(node)));<span style="color: #008000; ">//</span><span style="color: #008000; ">将2~N号按序插到之前创建的单个节点的循环链表中</span><span style="color: #008000; "><br /></span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x-&gt;item=i;&nbsp;x-&gt;next=t;<br />&nbsp; &nbsp; &nbsp;}<br />&nbsp;<br />&nbsp; &nbsp; &nbsp;<span style="color: #0000FF; ">while</span>(x!=&nbsp;x-&gt;next)&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">如果不是最后一个节点，因为是循环链表，所以x!=x-&gt;next</span><span style="color: #008000; "><br /></span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000FF; ">for</span>(i=1;i&lt;M;i++)&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">则顺着链表向前遍历，数出M-1个元素</span><span style="color: #008000; "><br /></span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x=x-&gt;next;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;printf("%d&nbsp;",x-&gt;next-&gt;item);<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;x-&gt;next&nbsp;=&nbsp;x-&gt;next-&gt;next;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">删除第M个元素</span><span style="color: #008000; "><br /></span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N--;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">节点数减1</span><span style="color: #008000; "><br /></span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp; &nbsp; &nbsp;printf("\n%d\n",x-&gt;item);&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">最后打印出最后一个节点</span><span style="color: #008000; "><br /></span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />&nbsp;}</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/187428.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-17 00:14 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/17/187428.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最近点对的计算</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/14/187206.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Tue, 14 Aug 2012 13:39:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/14/187206.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/187206.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/14/187206.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/187206.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/187206.html</trackback:ping><description><![CDATA[编写程序，对于N个随机产生的单位正方形中的点，统计可以被长度小于d的直线连结的点对数。<br /><br />程序如下：<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->typedef&nbsp;<span style="color: #0000FF; ">struct</span>{&nbsp;<span style="color: #0000FF; ">float</span>&nbsp;x;&nbsp;<span style="color: #0000FF; ">float</span>&nbsp;y;&nbsp;}&nbsp;point;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">定义点的数据类型</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">float</span>&nbsp;distance(point,point);&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">两点之间距离函数</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">float</span>&nbsp;distance(point&nbsp;a,point&nbsp;b)<br />{&nbsp;<br />&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">float</span>&nbsp;dx=&nbsp;a.x&nbsp;-&nbsp;b.x,&nbsp;dy=&nbsp;a.y&nbsp;-&nbsp;b.y;<br />&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;sqrt(dx*dx&nbsp;+&nbsp;dy*dy);<br />}<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">以上为头文件&nbsp;Point.h&nbsp;的内容</span><span style="color: #008000; "><br /></span><br /><br /><br />#include&lt;stdio.h&gt;&nbsp;<br />#include&lt;stdlib.h&gt;<br />#include&lt;math.h&gt;<br />#include&nbsp;"Point.h"<br /><span style="color: #0000FF; ">float</span>&nbsp;randFloat()<br />{&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;1.0*rand()/RAND_MAX;&nbsp;}&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">产生随机数的函数</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">float</span>&nbsp;d,N;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,j,cnt=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf("%f%f",&amp;d,&amp;N);&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">d为要求两点之间距离小于的长度，N为测试的点&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;point&nbsp;*a&nbsp;=&nbsp;(point&nbsp;*)malloc(<span style="color: #0000FF; ">sizeof</span>(point)*N);&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">动态生成数据类型为point的数组a<br /></span><div>&nbsp; &nbsp; for(i=0;i&lt;N;i++)</div><div><span style="white-space:pre">	</span>{</div><div><span style="white-space:pre">		</span>a[i].x = randFloat(); a[i].y = randFloat();&nbsp;</div><div><span style="white-space:pre">	</span>}</div>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;i&lt;N;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(j=i+1;j&lt;N;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(distance(a[i],a[j])&lt;d)&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">如果两点之间的距离小于d，那么cnt加1</span><span style="color: #008000; "><br /></span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;cnt++;<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("%d&nbsp;edges&nbsp;shorter&nbsp;than&nbsp;%f\n",cnt,d);&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">输出有多少条边的长度小于d</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/187206.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-14 21:39 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/14/187206.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>抛硬币的模拟实验</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/14/187135.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Tue, 14 Aug 2012 02:37:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/14/187135.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/187135.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/14/187135.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/187135.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/187135.html</trackback:ping><description><![CDATA[<br /><div style="font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; border-image: initial; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; background-color: #eeeeee; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">//</span><span style="color: #008000; ">模拟抛硬币的实验</span><span style="color: #008000; "><br /></span><br />#include&lt;stdio.h&gt;<br />#include&lt;stdlib.h&gt;<br /><span style="color: #0000FF; ">int</span>&nbsp;heads()&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">返回0或非0值</span><span style="color: #008000; "><br /></span>{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;rand()&nbsp;&lt;RAND_MAX/2;<br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,j,cnt;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;N,M;<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d%d",&amp;N,&amp;M);&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">抛一枚硬币N=32次，如此做M=1000次这样的实验</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;*f=(<span style="color: #0000FF; ">int</span>&nbsp;*)malloc((N+1)*<span style="color: #0000FF; ">sizeof</span>(<span style="color: #0000FF; ">int</span>));<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(j=1;j&lt;=N;j++)&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">初始化数组全部为0值</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[j]=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=1;i&lt;M;i++,f[cnt]++)&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">开始抛硬币，f[cnt]记录第cnt次抛硬币出现正面的次数</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(cnt=1,j=1;j&lt;=N;j++)&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">开始第一轮共32次的抛硬币实验</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(heads())&nbsp;&nbsp;&nbsp;&nbsp;cnt++;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">如果出现正面，即heads()返回值为1，则对应着f[cnt]++,同时cnt++,此处利用数组索引统计正面出现次数，负面数组值始终为0</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(j=1;j&lt;=N;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%2d&nbsp;",j);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;i&lt;f[j];i+=10)&nbsp;printf("*");&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">正面每出现十次打印一个星号</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("\n");<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/187135.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-14 10:37 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/14/187135.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用链表实现学生成绩的排序</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/12/187018.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sun, 12 Aug 2012 14:23:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/12/187018.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/187018.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/12/187018.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/187018.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/187018.html</trackback:ping><description><![CDATA[输入10个学生的成绩，编写一程序对学生的成绩按从高到低输出，要求用链表实现。<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br />#include&lt;stdlib.h&gt;<br /><span style="color: #0000FF; ">struct</span>&nbsp;Stu<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;score;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">struct</span>&nbsp;Stu&nbsp;*next;<br />};<br />typedef&nbsp;<span style="color: #0000FF; ">struct</span>&nbsp;Stu&nbsp;Node;<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;Node&nbsp;*head,*p,*q;<br />&nbsp;&nbsp;&nbsp;&nbsp;head=(Node*)malloc(<span style="color: #0000FF; ">sizeof</span>(Node));&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">创建头结点</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(head&nbsp;==&nbsp;NULL)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("Memory&nbsp;is&nbsp;not&nbsp;enough!");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;head-&gt;next=NULL;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;i&lt;10;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p=(Node*)malloc(<span style="color: #0000FF; ">sizeof</span>(Node));&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">创建一个新结点p</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(p&nbsp;==&nbsp;NULL)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("no&nbsp;enough&nbsp;memory!");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("Input&nbsp;the&nbsp;%dth&nbsp;student's&nbsp;score:&nbsp;",i+1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d",&amp;p-&gt;score);&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">输入成绩</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q=head;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(q-&gt;next&nbsp;!=&nbsp;NULL)&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">遍历链表</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(q-&gt;next-&gt;score&nbsp;&lt;&nbsp;p-&gt;score)&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">如果发现链表中的某个成绩比当前输入成绩小，就跳出循环，在其前面插入当前输入成绩</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q=q-&gt;next;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">继续遍历直到遍历的成绩比当前输入的成绩小</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;next=q-&gt;next;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">这是当前成绩插入到链表中比其小的成绩前面的代码</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q-&gt;next=p;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;p=head-&gt;next;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(p&nbsp;!=NULL)&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d&nbsp;",p-&gt;score);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p=p-&gt;next;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br /><div style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; border-image: initial; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->p=head;<br /><span style="color: #0000FF; ">while</span>(p-&gt;next&nbsp;!=NULL)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;q=p-&gt;next;<br />&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;next=q-&gt;next;<br />&nbsp;&nbsp;&nbsp;&nbsp;free(q);<br />}<br />free(head);</div><br /><span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br /><br /></div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/187018.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-12 22:23 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/12/187018.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>统计子字符串出现次数</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186991.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sun, 12 Aug 2012 08:05:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186991.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/186991.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186991.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/186991.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/186991.html</trackback:ping><description><![CDATA[编写一个函数totsubstrnum(char *str, char *substr) ，它的功能是：统计子字符串substr在字符串str中出现的次数。<br /><br />思想：len2为子串的长度，设置变量 i =0, 利用strncmp函数将str+i 开始的len2个字符与子串substr进行比较，如果相等，则count加1，此时 i 加 len2，如果不等，则 i 加1，继续寻找。<br /><br />代码测试通过：<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br />#include&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br /><span style="color: #0000FF; ">int</span>&nbsp;totsubstrnum(<span style="color: #0000FF; ">char</span>&nbsp;*str,&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;*substr);<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;str[80],substr[80];<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("Input&nbsp;string:&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;gets(str);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("Input&nbsp;substring:&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;gets(substr);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("count&nbsp;=&nbsp;%d\n",totsubstrnum(str,substr));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;totsubstrnum(<span style="color: #0000FF; ">char</span>&nbsp;*str,&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;*substr)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i=0,count=0,len1,len2;<br />&nbsp;&nbsp;&nbsp;&nbsp;len1=strlen(str);<br />&nbsp;&nbsp;&nbsp;&nbsp;len2=strlen(substr);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(i&nbsp;&lt;=&nbsp;len1-len2)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(strncmp(str+i,substr,len2)&nbsp;==&nbsp;0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;+=len2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;(count);<br />}</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/186991.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-12 16:05 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186991.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>左移n个字符串</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186983.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sun, 12 Aug 2012 06:14:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186983.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/186983.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186983.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/186983.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/186983.html</trackback:ping><description><![CDATA[编写一函数strlshif(char *s, int n)，其功能是把字符串s中的所有字符左移n个位置，字符串中的前n个字符移到最后。<br /><br />代码测试通过：<br /><br /><br /><div style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; border-image: initial; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; background-color: #eeeeee; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><font size="2">#include&lt;stdio.h&gt;</font><br /><font size="2">#include&lt;</font><span style="font-size: 13px; color: #0000ff; ">string</span><font size="2">.h&gt;</font><br /><span style="font-size: 13px; color: #0000ff; ">void</span><font size="2">&nbsp;strlshif(</font><span style="font-size: 13px; color: #0000ff; ">char</span><font size="2">&nbsp;*s,&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;n);</font><br /><span style="font-size: 13px; color: #0000ff; ">void</span><font size="2">&nbsp;main()</font><br /><font size="2">{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">char</span><font size="2">&nbsp;str[]="0123456789";</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;strlshif(str,3);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;printf("%s\n",str);</font><br /><font size="2">}</font><br /><br /><span style="font-size: 13px; color: #0000ff; ">void</span><font size="2">&nbsp;strlshif(</font><span style="font-size: 13px; color: #0000ff; ">char</span><font size="2">&nbsp;*s,&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;n)</font><br /><font size="2">{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;i,len;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">char</span><font size="2">&nbsp;ch;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;len=strlen(s);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">for</span><font size="2">(i=0;i&lt;n;i++)</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch=s[0];</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strncpy(s,s+1,len-1);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s[len-1]=ch;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;}</font><br /><font size="2">}</font><br /><br /><span style="font-size: 12pt; ">那么若是不用strncpy函数功能，如何使指定的字符串左移n位？<br /></span><span style="font-size: 12pt; ">代码测试通过，如下：</span><span style="font-size: 14pt; "><br /><br /></span><div style="font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; border-image: initial; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br />#include&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;str[]="0123456789";<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;sstr[80]={0};&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">使用一数组储存移动后的字符串</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;*p;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;c,j;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,n;<br />&nbsp;&nbsp;&nbsp;&nbsp;p=&amp;str[0];<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("input&nbsp;the&nbsp;number:&nbsp;\n");<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d",&amp;n);&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">输入要左移的前n个字符，即将这n个字符移动到最后面</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;c=n;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(&nbsp;c--&nbsp;&amp;&amp;&nbsp;p++&nbsp;);&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">找到没有移动过的剩下的全部字符，把它们储存在数组sstr&nbsp;中</span><span style="color: #008000; "><br /></span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;i&lt;strlen(str)-n;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sstr[i]=&nbsp;*p;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p=&amp;str[0];&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">指针指向第一个字符</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(j=i;j&lt;strlen(str);j++)&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">将要移动的字符一个一个地&#8220;接&#8221;到数组sstr后面</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sstr[j]=&nbsp;*p;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sstr[j]='\0';&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">最后字符串结尾用'\0'</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%s",sstr);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br /><br /><br /><br />&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div></div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/186983.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-12 14:14 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186983.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>取某字符串的子串</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186970.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sun, 12 Aug 2012 03:45:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186970.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/186970.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186970.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/186970.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/186970.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all">// s 是字符串 startloc 是开始取的位置 &nbsp; len表示取得子串长度<br />#include&lt;stdio.h&gt;<br />#include&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br />#include&lt;stdlib.h&gt;<br /><span style="color: #0000FF; ">void</span>&nbsp;substr(<span style="color: #0000FF; ">char</span>&nbsp;*s,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;startloc,<span style="color: #0000FF; ">int</span>&nbsp;len)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>((startloc&nbsp;&lt;&nbsp;0)&nbsp;||&nbsp;(startloc&nbsp;&gt;=&nbsp;strlen(s))&nbsp;||&nbsp;(len&lt;0))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("input&nbsp;error!");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(0);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,c=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;sstr[80];<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(*s&nbsp;!='\0')<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(c!=startloc)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;++c;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;i&lt;len;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sstr[i]=&nbsp;*s;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sstr[i]='\0';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("%s",sstr);<br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;str[80];<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;s,l;<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("Input&nbsp;string:&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;gets(str);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("Start&nbsp;Location:&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d",&amp;s);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("Substring&nbsp;length:&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d",&amp;l);<br />&nbsp;&nbsp;&nbsp;&nbsp;substr(str,s,l);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br /><br />&nbsp; &nbsp;&nbsp;</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/186970.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-12 11:45 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186970.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>实现mystrcat()函数</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186961.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sun, 12 Aug 2012 02:16:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186961.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/186961.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186961.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/186961.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/186961.html</trackback:ping><description><![CDATA[类似C语言中的strcat()函数，编程实现mystrcat( char *str, char * destr)的功能并测试 。<br /><br /><br />代码测试通过：<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br /><span style="color: #0000FF; ">void</span>&nbsp;mystrcat(&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;*str,<span style="color: #0000FF; ">char</span>&nbsp;*destr)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(*str&nbsp;!='\0')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str++;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(*destr&nbsp;!='\0')<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*str&nbsp;=&nbsp;*destr;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;destr++;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*str&nbsp;=&nbsp;'\0';<br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;str[30],destr[30];<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("input&nbsp;string&nbsp;and&nbsp;substring:&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf("%s%s",str,destr);<br />&nbsp;&nbsp;&nbsp;&nbsp;mystrcat(str,destr);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("%s",str);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/186961.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-12 10:16 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186961.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>整数转为字符串</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186958.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sun, 12 Aug 2012 01:58:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186958.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/186958.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186958.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/186958.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/186958.html</trackback:ping><description><![CDATA[编写一递归函数将一根整数n转换成字符串，例如输入482，应输出字符串&#8220;482&#8221;。n的位数不确定，可以是任意位数的整数。<br /><br />代码测试通过：<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br />#include&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br /><span style="color: #0000FF; ">void</span>&nbsp;IntToStr(<span style="color: #0000FF; ">int</span>&nbsp;n);<br /><span style="color: #0000FF; ">char</span>&nbsp;str[80]={0};<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;num;<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("input&nbsp;an&nbsp;integer&nbsp;number:&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d",&amp;num);<br />&nbsp;&nbsp;&nbsp;&nbsp;IntToStr(num);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("The&nbsp;string&nbsp;is:&nbsp;%s\n",str);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br /><br /><span style="color: #0000FF; ">void</span>&nbsp;IntToStr(<span style="color: #0000FF; ">int</span>&nbsp;n)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(n&nbsp;==&nbsp;0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=strlen(str)-1;i&gt;=0;i--)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str[i+1]=str[i];&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">向后移一位</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;str[0]=n%10+0x30;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">最开始输入的数字最后一位放在str[0],随后向后移，直到n==0&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;IntToStr(n/10);&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">n不断取除个位的其他高位数</span><span style="color: #008000; "><br /></span>}<br /><br /><br /><br /><br />&nbsp; &nbsp;&nbsp;</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/186958.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-12 09:58 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/12/186958.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>单词的长度</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/11/186919.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Sat, 11 Aug 2012 15:11:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/11/186919.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/186919.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/11/186919.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/186919.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/186919.html</trackback:ping><description><![CDATA[输入若干个单词，输出它们的平均长度。单词只包括大写字母和小写字母，用一个空格隔开。<br /><br />代码测试通过：<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br />#include&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;s[1000];<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;*p;<br />&nbsp;&nbsp;&nbsp;&nbsp;p=&amp;s[0];<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;len=0,tot=0,ws=0,per_len,i;<br />&nbsp;&nbsp;&nbsp;&nbsp;gets(s);<br />&nbsp;&nbsp;&nbsp;&nbsp;len=strlen(s);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;i&lt;=len;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(&nbsp;*p&nbsp;&gt;='a'&nbsp;&amp;&amp;&nbsp;*p&lt;='z'&nbsp;||&nbsp;*p&nbsp;&gt;='A'&nbsp;&amp;&amp;&nbsp;*p&lt;='Z')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tot++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>(&nbsp;*p&nbsp;==&nbsp;'&nbsp;'&nbsp;||&nbsp;*p&nbsp;=='\0')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ws++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;per_len=tot/ws;<br />&nbsp;&nbsp;&nbsp;&nbsp;printf("%d\n",per_len);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/186919.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-11 23:11 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/11/186919.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>倒三角形</title><link>http://www.cppblog.com/zhenglinbo/archive/2012/08/10/186847.html</link><dc:creator>hoshelly</dc:creator><author>hoshelly</author><pubDate>Fri, 10 Aug 2012 12:24:00 GMT</pubDate><guid>http://www.cppblog.com/zhenglinbo/archive/2012/08/10/186847.html</guid><wfw:comment>http://www.cppblog.com/zhenglinbo/comments/186847.html</wfw:comment><comments>http://www.cppblog.com/zhenglinbo/archive/2012/08/10/186847.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhenglinbo/comments/commentRss/186847.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhenglinbo/services/trackbacks/186847.html</trackback:ping><description><![CDATA[输入正整数n&lt;=20,输出一个n层的倒三角形，例如n=5时输出如下：<br /><br />#########<br />&nbsp; #######<br />&nbsp; &nbsp; #####<br />&nbsp; &nbsp; &nbsp; ###<br />&nbsp; &nbsp; &nbsp; &nbsp; #<br /><br />代码测试通过：<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include&lt;stdio.h&gt;<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;n,s,i,j,k,c=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d",&amp;n);<br />&nbsp;&nbsp;&nbsp;&nbsp;s=2*n-1;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(i=0;i&lt;n;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(c!=0)&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">如果不是第一行，即s要减2，作为输出#的个数</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s=s-2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(k=0;k&lt;c;k++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(j=0;j&lt;s;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("#");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(k=0;k&lt;c;k++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("&nbsp;");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("\n");<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br />&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><img src ="http://www.cppblog.com/zhenglinbo/aggbug/186847.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-10 20:24 <a href="http://www.cppblog.com/zhenglinbo/archive/2012/08/10/186847.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>