??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品无码专区久久久,久久久久久毛片免费播放,狠狠久久综合伊人不卡http://m.shnenglu.com/zhenglinbo/category/18717.html享受~程的乐?/description>zh-cnWed, 12 Dec 2012 02:49:12 GMTWed, 12 Dec 2012 02:49:12 GMT60动态规划解x长公共子串问?/title><link>http://m.shnenglu.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://m.shnenglu.com/zhenglinbo/archive/2012/12/07/196063.html</guid><wfw:comment>http://m.shnenglu.com/zhenglinbo/comments/196063.html</wfw:comment><comments>http://m.shnenglu.com/zhenglinbo/archive/2012/12/07/196063.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhenglinbo/comments/commentRss/196063.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zhenglinbo/services/trackbacks/196063.html</trackback:ping><description><![CDATA[<div>讑ֺ列X={x1,x2,x3......xm}和Y={y1,y2,y3,....yn}Q要求最长公共子序列Q可以按照下面方式递归计算Q:当xm=ynӞ扑ևXm-1和Yn-1的最长公共子序列Q然后在其尾部加上xm卛_得到X和Y的最长公共子序列Q当xm不等于yn的时候,必须解决两个子问题即扑ևXm-1和Y的最长公共子序列和Yn-1和X的最长工公共子序列,然后q两个里面较长者ؓX和Y的最长公共子序列Q?/div><div>首先建立子问题的最优值递归关系。用C[i][j]表示Xi和Yj的最长公共子序列的长度。其中,Xi={x1,x2,x3......xi},Yj={y1,y2,y3,....yn}Q当i=0或者j=0时空序列是Xi和Yj的最长公共子序列Q故因此QC[i][j]=0Q即?/div><div>代码如下Q?/div><div> </div><div>C[i][j]=0Q(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>0,xi不等于yj<span style="font-size: 12px;">q?/span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">最长公共子ԌLongest common substring, ULCSQ问题指的是求出l定的一l?/span></div><div><span style="font-size: 12px;">字符串的长度最大的共有的子字符丌Ӏ?nbsp;</span></div><div><span style="font-size: 12px;">   举例说明Q以下三个字W串的LCS是 cdeQ?nbsp;</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;">   ccde</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">现在的情冉|l你2个字W串Q请扑ֈ他们的LCS</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">h意:字符可以不相邻;</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;">输入W一行包含一个整数TQ表C有Tl数据;</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">对于每组数据包含2行,每行包含一个非I字W串Q长度不过1000个字W?/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的长度,保证每组数据存在LCSQ?/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>分析Q?/strong></span><span style="font-size: 12px;"><br /></span><div><em><strong>讑ֺ列X={x1,x2,x3......xm}和Y={y1,y2,y3,....yn}Q要求最长公共子序列Q可以按照下面方式递归计算Q:当xm=ynӞ扑ևXm-1和Yn-1的最长公共子序列Q然后在其尾部加上xm卛_得到X和Y的最长公共子序列Q当xm不等于yn的时候,必须解决两个子问题即扑ևXm-1和Y的最长公共子序列和Yn-1和X的最长工公共子序列,然后q两个里面较长者ؓX和Y的最长公共子序列Q?/strong></em></div><div><em><strong>首先建立子问题的最优值递归关系。用C[i][j]表示Xi和Yj的最长公共子序列的长度。其中,Xi={x1,x2,x3......xi},Yj={y1,y2,y3,....yn}Q当i=0或者j=0时空序列是Xi和Yj的最长公共子序列Q故因此QC[i][j]=0Q即?/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]=0Q(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>0,xi不等于yj</div><br />实现代码如下Q?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<stdio.h><br />#include<<span style="color: #0000FF; ">string</span>.h><br /><span style="color: #0000FF; ">int</span> c[1002][1002]={0};<br /><span style="color: #0000FF; ">int</span> main()<br />{<br />   <span style="color: #0000FF; ">int</span> N,m,n,i,j;<br />   <span style="color: #0000FF; ">char</span> x[1002],y[1002];<br />  scanf("%d",&N);<br />  <span style="color: #0000FF; ">while</span>(N--)<br />  {<br />        scanf("%s",x);<br />        scanf("%s",y);<br />        m=strlen(x);<br />        n=strlen(y);<br />        <span style="color: #0000FF; ">for</span>(i=1;i<=m;i++)<br />           <span style="color: #0000FF; ">for</span>(j=1;j<=n;j++)<br />           {<br />               <span style="color: #0000FF; ">if</span>(x[i-1]==y[j-1]) <br />               {<br />                  c[i][j]=c[i-1][j-1]+1;<br />                 }<br />              <span style="color: #0000FF; ">else</span> <span style="color: #0000FF; ">if</span>(c[i-1][j]>=c[i][j-1])<br />              {<br />                   c[i][j]=c[i-1][j];<br />               }<br />               <span style="color: #0000FF; ">else</span><br />               {<br />                   c[i][j]=c[i][j-1];<br />              }<br />            }<br />          printf("%d\n",c[m][n]);<br />  }<br />  <span style="color: #0000FF; ">return</span> 0;<br />}</div><br />参考自Q?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://m.shnenglu.com/zhenglinbo/aggbug/196063.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-12-07 01:28 <a href="http://m.shnenglu.com/zhenglinbo/archive/2012/12/07/196063.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最镉K复子?/title><link>http://m.shnenglu.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://m.shnenglu.com/zhenglinbo/archive/2012/12/05/196012.html</guid><wfw:comment>http://m.shnenglu.com/zhenglinbo/comments/196012.html</wfw:comment><comments>http://m.shnenglu.com/zhenglinbo/archive/2012/12/05/196012.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhenglinbo/comments/commentRss/196012.html</wfw:commentRss><trackback:ping>http://m.shnenglu.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;">对于一个字W串S1Q其中S2是他的一个子Ԍ长度严格于S1长度Q,如果S2在S1中出现次数超q?ơ,那么S2是一个重复子Ԍ现在的要求是l定S1Q请求出他的最镉K复子Ԍ</span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">如果有多个长度一L最长子Ԍ误入字典序最那个串Q?/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;">W一行包含一个整数TQ表C有Tl数?/span></div><div><span style="font-size: 12px;"><br /></span></div><div><span style="font-size: 12px;">对于每组数据包含一行,该行有一个字W串Q长度小?0,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;">对于每组数据误Z的最镉K复子Ԍ保证每组数据都有Q?/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 />代码试通过Q普通版Q:<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<stdio.h><br />#include<<span style="color: #0000FF; ">string</span>.h><br /><span style="color: #0000FF; ">#define</span> N 10000<br /><span style="color: #0000FF; ">int</span> main()<br />{<br />    <span style="color: #0000FF; ">char</span> a[N];<br />    <span style="color: #0000FF; ">int</span> i,j,n,t,p,max,t1;<br />    scanf("%d",&t1);<br />    <span style="color: #0000FF; ">while</span>(t1--)<br />    {<br />    max = 0;<br />    scanf("%s",a);<br />    n=strlen(a);<br />    <span style="color: #0000FF; ">for</span>(i=0;i<n;i++)<br />    {<br />        <span style="color: #0000FF; ">for</span>(j=i+1;j<n;j++)<br />        {<br />            t=0;<br />            <span style="color: #0000FF; ">while</span>(a[i+t]==a[j+t]&&(j+t)<n)<br />                t++;<br />            <span style="color: #0000FF; ">if</span>(t>max)<br />            {<br />                max=t;<br />                p=i;<br />            }<br />            <span style="color: #0000FF; ">else</span> <span style="color: #0000FF; ">if</span>(t == max) <span style="color: #008000; ">//</span><span style="color: #008000; ">如果有长度一L最镉K复子Ԍ那么比较它们的字典序</span><span style="color: #008000; "><br /></span>            {<br />                <span style="color: #0000FF; ">if</span>(a[i]<a[p])<br />                {<br />                    max = t;<br />                    p = i;<br />                }<br />            }<br />        }<br />    }<br />    <span style="color: #0000FF; ">for</span>(i=p;i<p+max;i++)<br />        printf("%c",a[i]);<br />    printf("\n");<br />    }<br />    <span style="color: #0000FF; ">return</span> 0;<br />}</div><span style="font-size: 12px;">普通算法效率较低,为O(n</span>²Q?br /><br /><span style="font-size: 12px;"><br /></span><span style="font-size: 12px;">W二U方法是用后~数组实现。{自:</span><span style="font-size: 12px;">http://hi.baidu.com/qwertlooker/item/44f3fe52ad772cdbd58bacfd</span><span style="font-size: 12px;"><br /><br /></span><div>如果E序臛_可以处理MAXN个字W,q些字符被存储在数组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> MAXN 5000000<br /><span style="color: #0000FF; ">char</span> c[MAXN], *a[MAXN];</div></div><div> 在读取输入时Q首先初始化a,q样Q每个元素就都指向输入字W串中的相应字符Q?/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> (ch = getchar()) != EOF<br />a[n] = &c[n];<br />c[n++] = ch;<br />c[n] = 0 <span style="color: #008000; ">//</span><span style="color: #008000; ">数lc中的最后一个元素设为空字符Q以l止所有字W串</span></div></div><div>q样Q元素a[0]指向整个字符Ԍ下一个元素指向以W二个字W开始的数组的后~Q等{。如若输入字W串?banana",该数l将表示q些后缀Q?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中的指针分别指向字符串中的每个后~Q所以将数组a命名?后缀数组"<br /></div><div>W二Q对后缀数组q行快速排序,以将后缀相近的(变位词)子串集中在一?/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>W三Q用以下comlen函数Ҏl进行扫描比较邻接元素,以找出最镉K复的字符Ԍ</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> i = [0, n)<br />     <span style="color: #0000FF; ">if</span> comlen(a[i], a[i+1]) > maxlen<br />         maxlen = comlen(a[i], a[i+1])<br />         maxi = i<br />printf("%.*s\n", maxlen, a[maxi])</div></div><div>׃了内层循环Q只是多了一ơ排序,因此该算法的q行旉为O(n logn). Qnlogn比n大,取nlognQ?br /><br />实现代码如下Q?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 <stdio.h><br />#include <stdlib.h><br />#include <<span style="color: #0000FF; ">string</span>.h><br /><br /><span style="color: #0000FF; ">#define</span> MAXCHAR 10000 <span style="color: #008000; ">//</span><span style="color: #008000; ">最长处?0000个字W?/span><br /><br /><span style="color: #0000FF; ">char</span> c[MAXCHAR], *a[MAXCHAR];<br /><br /><span style="color: #0000FF; ">int</span> comlen( <span style="color: #0000FF; ">char</span> *p, <span style="color: #0000FF; ">char</span> *q ){  <span style="color: #008000; ">//</span><span style="color: #008000; ">计算最镉K复子串的长度</span><span style="color: #008000; "><br /></span>    <span style="color: #0000FF; ">int</span> i = 0;<br />    <span style="color: #0000FF; ">while</span>( *p && (*p++ == *q++) )<br />        ++i;<br />    <span style="color: #0000FF; ">return</span> i;<br />}<br /><br /><span style="color: #0000FF; ">int</span> pstrcmp( <span style="color: #0000FF; ">const</span> <span style="color: #0000FF; ">void</span> *p1, <span style="color: #0000FF; ">const</span> <span style="color: #0000FF; ">void</span> *p2 ){<br />    <span style="color: #0000FF; ">return</span> strcmp( *(<span style="color: #0000FF; ">char</span>* <span style="color: #0000FF; ">const</span> *)p1, *(<span style="color: #0000FF; ">char</span>* <span style="color: #0000FF; ">const</span>*)p2 );<br />}<br /><br /><span style="color: #0000FF; ">int</span> main( ){<br />    <span style="color: #0000FF; ">int</span> t;<br />    <span style="color: #0000FF; ">char</span> ch;<br />    <span style="color: #0000FF; ">int</span> i, temp;<br />    scanf("%d\n",&t);<br />    <span style="color: #0000FF; ">while</span>(t--)<br />    {   <br />        <span style="color: #0000FF; ">int</span> n=0;<br />        <span style="color: #0000FF; ">int</span> maxlen=0, maxi=0;<br /><br />      <span style="color: #0000FF; ">while</span>( (ch=getchar())!='\n' ){<br />        a[n]=&c[n];<br />        c[n++]=ch;<br />    }<br />    c[n]='\0';<br />    qsort( a, n, <span style="color: #0000FF; ">sizeof</span>(<span style="color: #0000FF; ">char</span>*), pstrcmp ); <span style="color: #008000; ">//</span><span style="color: #008000; ">快速排序对后缀数组q行排序Q以使后~相同的子串集中在一P<br />                                           </span><span style="color: #008000; ">//</span><span style="color: #008000; ">以便接下来comlen函数对这些子串进行计其最镉K复子?/span><span style="color: #008000; "><br /></span>    <span style="color: #0000FF; ">for</span>(i=0; i<n-1; ++i ){<br />        temp=comlen( a[i], a[i+1] );<br />        <span style="color: #0000FF; ">if</span>( temp>maxlen )<br />        {<br />            maxlen=temp;<br />            maxi=i;<br />        }<br />    }<br />    printf("%.*s\n",maxlen, a[maxi]); <span style="color: #008000; ">//</span><span style="color: #008000; ">输出最镉K复子?/span><span style="color: #008000; "><br /></span>    }<br />    <span style="color: #0000FF; ">return</span> 0;<br />}<br /><br />W三U方法似乎可以用后缀树实玎ͼ效率可以提高到O(n)Q具体的后缀树讲解可以参照这文章:<br /><span style="font-size: 12px;">http://blog.csdn.net/v_july_v/article/details/6897097QPS:智商有限Q后面部分讲解理解不了)</span></div></div></div><img src ="http://m.shnenglu.com/zhenglinbo/aggbug/196012.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-12-05 17:58 <a href="http://m.shnenglu.com/zhenglinbo/archive/2012/12/05/196012.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>二叉树之数组存储http://m.shnenglu.com/zhenglinbo/archive/2012/10/16/193389.htmlhoshellyhoshellyTue, 16 Oct 2012 15:47:00 GMThttp://m.shnenglu.com/zhenglinbo/archive/2012/10/16/193389.htmlhttp://m.shnenglu.com/zhenglinbo/comments/193389.htmlhttp://m.shnenglu.com/zhenglinbo/archive/2012/10/16/193389.html#Feedback0http://m.shnenglu.com/zhenglinbo/comments/commentRss/193389.htmlhttp://m.shnenglu.com/zhenglinbo/services/trackbacks/193389.html二叉树可以采用数l的Ҏq行存储Q把数组中的数据依次自上而下,自左臛_存储C叉树l点中,一般二叉树与完全二叉树ҎQ比完全二叉树缺的l点在数组中用0来表C?/span>

l点存储的数据均为非负整?/span>

Input

W一行输入一个整数tQ表C有t个二叉树

W二行vQ每行输入一个数l,先输入数l长度,再输入数l内数据Q每个数据之间用I格隔开Q输入的数据都是非负整数

q箋输入t?/span>

Output

每行输出一个示例的先序遍历l果Q每个结点之间用I格隔开

Sample Input

3
3 1 2 3
5 1 2 3 0 4
13 1 2 3 4 0 5 6 7 8 0 0 9 10
Sample Output

1 2 3 
1 2 4 3 
1 2 4 7 8 3 5 9 10 6 

分析Q?/span>q道题的关键在于Q设定数l位|从1开始编P那么位置为i的结点,它的左孩子在数组的位|是2iQ右孩子在数l的位置?i+1

q道题的隄在把树徏立v来,其他都容易?/span>

代码Q?/span>

#include <iostream> 
using namespace std;

class BiTreeNode
{

private:

 BiTreeNode  *leftChild;      //左子树指?/span>

 BiTreeNode  *rightChild;      //叛_树指?/span>

public:

 int  data;           //数据?br />

 
//构造函数和析构函数

 BiTreeNode():leftChild(NULL), rightChild(NULL){}

 BiTreeNode(int  item, BiTreeNode  *left = NULL, 

    BiTreeNode  *right = NULL):

    data(item), leftChild(left), rightChild(right){}

 ~BiTreeNode(){}


 BiTreeNode  * &Left(void//注意q回值类型ؓ指针的引用类?/span>

  {return leftChild;}

 BiTreeNode  * &Right(void//注意q回值类型ؓ指针的引用类?/span>

  {return rightChild;}

};




class BiTree

{

private:

 BiTreeNode  *root;       //根结Ҏ?/span>

    int i,len; //len是树l点的数?/span>

 void Destroy(BiTreeNode  * &t);

 void PreOrder(BiTreeNode  * &t);

 void  CreateBiTree(BiTreeNode * &T,const int arrTree[],int pos);

public:

 //构造函数和析构函数

 BiTree(void):root(NULL),i(0){};     //构造函?/span>

 ~BiTree(void){};        //析构函数


 
//构造二叉树

   void MakeTree(const int arrTree[],int num); //构造二叉树Q利用先序遍历结果徏?/span>

   void Destroy(void);        //销毁二叉树


 void PreOrder();  //前序遍历 

};


//2、定义销毁函?/span>

void BiTree ::Destroy(void)       //销毁二叉树Q公有函?/span>

{

 Destroy(root);

}


void BiTree ::Destroy(BiTreeNode  * &t)             

//销毁二叉树Q私有函C共有函数调用

{

 if(t != NULL && t->Left() != NULL)

  Destroy(t->Left());


 if(t != NULL && t->Right() != NULL)

  Destroy(t->Right());


 if(t != NULL)

 {
  delete t;
 }

}


//3、定义徏树函?/span>

void BiTree::MakeTree(const int arrTree[],int num)

//构造二叉树Q利用先序遍历结果徏树,公有函数

{

   i=0;
   len = num;

   CreateBiTree(root,arrTree,1);//数组位置?开?/span>

}


void BiTree::CreateBiTree(BiTreeNode * &T, const int arrTree[],int pos)   //递归建树U有函数

{

 int ch;

 ch=arrTree[pos]; 

 if (ch == 0 || pos > len) T = NULL;

 else 

 {

  T=new BiTreeNode();

  T->data = ch;              // 生成根结?/span>
  i++;
  if(i>len) return;

  CreateBiTree(T->Left(), arrTree,2*pos);   // 构造左子树

  CreateBiTree(T->Right(), arrTree,2*pos+1);   // 构造右子树

   } 

}

//4、定义先序遍历函?/span>

void BiTree::PreOrder()

//前序遍历讉K二叉树,公有函数

{

 PreOrder(root);

}


void BiTree::PreOrder(BiTreeNode* &t)

//前序遍历讉K二叉树,U有函数t

{


  if(t!=NULL)//若二叉树l点不ؓI,执行如下操作Q?/span>
  {
      cout<<t->data<<" ";//1、输出当前结点的数据Q表Cl点被访问了

      PreOrder(t->Left());//2、先序遍历该l点的左孩子

      PreOrder(t->Right());//3、先序遍历该l点的右孩子
  }


}

int main()
{
    int m,i,j,k;
    int *arrTree;
    BiTree myTree;
    cin>>m;
    for(i=0;i<m;i++)
    {
        arrTree = new int[800];
        cin>>k;
        for(j=1;j<=k;j++)
            cin>>arrTree[j];
        myTree.MakeTree(arrTree,k);
        myTree.PreOrder();
        cout<<endl;
        
        delete []arrTree;
        myTree.Destroy();
    }
    return 0;
}


hoshelly 2012-10-16 23:47 发表评论
]]>
单表辑ּ求?/title><link>http://m.shnenglu.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://m.shnenglu.com/zhenglinbo/archive/2012/10/08/193011.html</guid><wfw:comment>http://m.shnenglu.com/zhenglinbo/comments/193011.html</wfw:comment><comments>http://m.shnenglu.com/zhenglinbo/archive/2012/10/08/193011.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhenglinbo/comments/commentRss/193011.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zhenglinbo/services/trackbacks/193011.html</trackback:ping><description><![CDATA[<div><span style="font-size: 12px;">描述</span></div><div><span style="font-size: 12px;">l一些包含加减号和小括号的表辑ּQ求表达式的倹{表辑ּ中的数值均为绝对值小?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;">W一行ؓ表达式的个数 nQ以?n 行每行有一个表辑ּ。每个表辑ּ的长度不过 20 个字W?/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;">Ҏ个表辑ּQ输出它的倹{?/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; ">ҎU情况都要考虑清楚</span><span style="color: #008000; "><br /></span><br />#include <cctype><br />#include <iostream><br />#include <<span style="color: #0000FF; ">string</span>><br />#include <stack><br />#include <map><br /><br /><span style="color: #0000FF; ">using</span> <span style="color: #0000FF; ">namespace</span> std;<br /><br /><span style="color: #0000FF; ">int</span> getPrecedence(<span style="color: #0000FF; ">const</span> <span style="color: #0000FF; ">char</span> optr) <span style="color: #008000; ">//</span><span style="color: #008000; ">l各个操作符定义优先U顺序,利用map容器</span><span style="color: #008000; "><br /></span>{<br />    map<<span style="color: #0000FF; ">char</span>, <span style="color: #0000FF; ">int</span>> precedTable;<br />    precedTable['#'] = 0;<br />    precedTable[')'] = 1;<br />    precedTable['+'] = 2;<br />    precedTable['-'] = 2;<br />    precedTable['*'] = 3;<br />    precedTable['/'] = 3;<br />    precedTable['('] = 10;<br />    <span style="color: #0000FF; ">return</span> precedTable[optr];<br />}<br /><br /><span style="color: #0000FF; ">int</span> calculate(<span style="color: #0000FF; ">int</span> a, <span style="color: #0000FF; ">char</span> optr, <span style="color: #0000FF; ">int</span> b)<br />{<br />    <span style="color: #0000FF; ">switch</span> (optr) {<br />        <span style="color: #0000FF; ">case</span> '+': <span style="color: #0000FF; ">return</span> a + b;<br />        <span style="color: #0000FF; ">case</span> '-': <span style="color: #0000FF; ">return</span> a - b;<br />        <span style="color: #0000FF; ">case</span> '*': <span style="color: #0000FF; ">return</span> a * b;<br />        <span style="color: #0000FF; ">case</span> '/': <span style="color: #0000FF; ">return</span> a / b;<br />        <span style="color: #0000FF; ">default</span>: <span style="color: #0000FF; ">return</span> 0;<br />    }<br />}<br /><br /><span style="color: #0000FF; ">int</span> evaluate(<span style="color: #0000FF; ">const</span> <span style="color: #0000FF; ">string</span>& expr)<br />{<br />    stack<<span style="color: #0000FF; ">int</span>> opnd;  <br />    stack<<span style="color: #0000FF; ">char</span>> optr;   <br />    <span style="color: #0000FF; ">char</span> last_ch = '\0'; <span style="color: #008000; ">//</span><span style="color: #008000; ">每次查字W时的前一个字W?/span><span style="color: #008000; "><br /></span>    <span style="color: #0000FF; ">for</span> (size_t i = 0; i != expr.size(); ++i) {  <br />        <span style="color: #0000FF; ">const</span> <span style="color: #0000FF; ">char</span> ch = expr[i];<br />        <span style="color: #0000FF; ">if</span> (isspace(ch)) { <span style="color: #008000; ">//</span><span style="color: #008000; ">如果是空|卌q?/span><span style="color: #008000; "><br /></span>            <span style="color: #0000FF; ">continue</span>;<br />        } <span style="color: #0000FF; ">else</span> <span style="color: #0000FF; ">if</span> (isdigit(ch)) { <span style="color: #008000; ">//</span><span style="color: #008000; ">如果是数字,则压入操作数?/span><span style="color: #008000; "><br /></span>            opnd.push(ch - '0');<br />        } <span style="color: #0000FF; ">else</span> {<br />            <span style="color: #0000FF; ">if</span> ((ch == '-'  || ch == '+') && (last_ch == '\0' || last_ch == '(')) <span style="color: #008000; ">//</span><span style="color: #008000; ">遇到 '+'?-'Q则压入0q操作数?/span><span style="color: #008000; "><br /></span>                opnd.push(0);    <span style="color: #008000; ">//</span><span style="color: #008000; ">?nbsp;7-1Q遇'-'则压?q栈Q,'-'则进操作W栈Q遇C一个数1Q计?-1?1</span><span style="color: #008000; "><br /></span>            <span style="color: #0000FF; ">if</span> (optr.empty() || ch == '(' || (optr.top() == '(' && ch != ')') || getPrecedence(ch) > getPrecedence(optr.top())) {<br />                optr.push(ch);<br />            } <br />            <span style="color: #0000FF; ">else</span> <br />            {<br />                <span style="color: #0000FF; ">while</span> (!optr.empty() && optr.top() != '(' && getPrecedence(ch) <= getPrecedence(optr.top())) <br />                {<br />                    <span style="color: #0000FF; ">int</span> b = opnd.top(); opnd.pop();<br />                    <span style="color: #0000FF; ">int</span> a = opnd.top(); opnd.pop();<br />                    opnd.push(calculate(a, optr.top(), b));<br />                    optr.pop();<br />                }<br />                <span style="color: #0000FF; ">if</span> (ch == ')')<br />                    optr.pop();    <br />                <span style="color: #0000FF; ">else</span><br />                    optr.push(ch);<br />            }<br />        }<br />        last_ch = ch;<br />    }<br />    <span style="color: #0000FF; ">while</span> (!optr.empty()) {<br />        <span style="color: #0000FF; ">int</span> b = opnd.top(); opnd.pop();<br />        <span style="color: #0000FF; ">int</span> a = opnd.top(); opnd.pop();<br />        opnd.push(calculate(a, optr.top(), b));<br />        optr.pop();<br />    }<br />    <span style="color: #0000FF; ">int</span> result = opnd.top(); opnd.pop();<br />    <span style="color: #0000FF; ">return</span> result;<br />}<br /><br /><span style="color: #0000FF; ">int</span> main()<br />{<br />    <span style="color: #0000FF; ">int</span> n;<br />    cin >> n;<br />    <span style="color: #0000FF; ">while</span> (n-- > 0) {<br />        <span style="color: #0000FF; ">string</span> expr;<br />        cin>>expr;<br />        cout << evaluate(expr) << endl;<br />    }<br />    <span style="color: #0000FF; ">return</span> 0;<br />}<br /></div></div><img src ="http://m.shnenglu.com/zhenglinbo/aggbug/193011.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-10-08 17:25 <a href="http://m.shnenglu.com/zhenglinbo/archive/2012/10/08/193011.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>扑և中间敎ͼC++快排函数使用Q?/title><link>http://m.shnenglu.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://m.shnenglu.com/zhenglinbo/archive/2012/09/23/191722.html</guid><wfw:comment>http://m.shnenglu.com/zhenglinbo/comments/191722.html</wfw:comment><comments>http://m.shnenglu.com/zhenglinbo/archive/2012/09/23/191722.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhenglinbo/comments/commentRss/191722.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zhenglinbo/services/trackbacks/191722.html</trackback:ping><description><![CDATA[<div><span style="font-size: 12px;">Totalsubmit: 790   Accepted: 47  </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;">一天,农夫乔伊像往怸hC他的牧场Q他H然对他的奶牛奉产生了兴?/span></div><div><span style="font-size: 12px;">他想知道产奶量处于中间的那头奶牛的奉是多,处于中间的意思是_其中有一半牛的奉比它多,另一半牛的奉比它?/span></div><div><span style="font-size: 12px;">    q个问题现在交由你来写程序完成!</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;">仅包括一l测试数据,W一行一个正整数NQ?<=N<=10,000Q,接下来N行,每行一个正整数不会过10^6Q第i+1行的数字代表Wi头牛的奉?/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<iostream><br />#include<algorithm><br /><span style="color: #0000FF; ">using</span> <span style="color: #0000FF; ">namespace</span> std;<br /><span style="color: #0000FF; ">int</span> compare(<span style="color: #0000FF; ">const</span> <span style="color: #0000FF; ">void</span> * a,<span style="color: #0000FF; ">const</span> <span style="color: #0000FF; ">void</span> * b)<br />{<br />    <span style="color: #0000FF; ">return</span> *(<span style="color: #0000FF; ">int</span>*)a - *(<span style="color: #0000FF; ">int</span>*)b;<br />}<br /><span style="color: #0000FF; ">int</span> main()<br />{<br />    <span style="color: #0000FF; ">int</span> n,cow[10005];<br />    <span style="color: #0000FF; ">while</span>(cin>>n)<br />    {<br />        <span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span> i=1;i<=n;i++)<br />        {<br />            cin>>cow[i];<br />        }<br />        qsort(cow+1,n,<span style="color: #0000FF; ">sizeof</span>(<span style="color: #0000FF; ">int</span>),compare);<br />        cout<<cow[(n+1)/2]<<endl;<br />    }<br />    <span style="color: #0000FF; ">return</span> 0;<br />}</div><img src ="http://m.shnenglu.com/zhenglinbo/aggbug/191722.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-09-23 17:18 <a href="http://m.shnenglu.com/zhenglinbo/archive/2012/09/23/191722.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>计数问题http://m.shnenglu.com/zhenglinbo/archive/2012/09/23/191721.htmlhoshellyhoshellySun, 23 Sep 2012 08:35:00 GMThttp://m.shnenglu.com/zhenglinbo/archive/2012/09/23/191721.htmlhttp://m.shnenglu.com/zhenglinbo/comments/191721.htmlhttp://m.shnenglu.com/zhenglinbo/archive/2012/09/23/191721.html#Feedback0http://m.shnenglu.com/zhenglinbo/comments/commentRss/191721.htmlhttp://m.shnenglu.com/zhenglinbo/services/trackbacks/191721.htmll你两个数a和b,你的d是计出1在a和b之间出现的次?比如_如果a=1024,b=1032Q那么a和b之间的数是Q?/span>

1024 1025 1026 1027 1028 1029 1030 1031 1032

则有10?出现在这些数中?/span>

Input

输入不会过500行。每一行有两个数a和bQa和b的范围是0 < a, b < 100000000。输入两?时程序结束,两个0不作入样例?/span>

Output

对于每一对输入的a和bQ输Z个数Q代?出现的个数?/span>

Sample Input


1 10
44 497
346 542
1199 1748
1496 1403
1004 503
1714 190
1317 854
1976 494
1001 1960
0 0

Sample Output

2
185
40
666
113
105
1133
512
1375
1256


#include<stdio.h>
#include<string.h>
int Find_OneNum(long a)
{
    long i,b,count=0;
    while(a)
    {
        b=a%10;
        if(b == 1)
        {
            count++;
        }
        a=a/10;
    }
    return count;
}
int main()
{
    long a,b,i,sum;
    while((scanf("%ld%ld",&a,&b) == 2),a)
    {
        if(a>b)
        {
            int temp;
            temp=a;
            a=b;
            b=temp;
        }
        sum=0;
    for(i=a;i<=b;i++)
    {
        sum += Find_OneNum(i);
    }
    printf("%ld\n",sum);
    }
    return 0;
}


hoshelly 2012-09-23 16:35 发表评论
]]>
扑և回文素数http://m.shnenglu.com/zhenglinbo/archive/2012/09/22/191606.htmlhoshellyhoshellySat, 22 Sep 2012 09:45:00 GMThttp://m.shnenglu.com/zhenglinbo/archive/2012/09/22/191606.htmlhttp://m.shnenglu.com/zhenglinbo/comments/191606.htmlhttp://m.shnenglu.com/zhenglinbo/archive/2012/09/22/191606.html#Feedback0http://m.shnenglu.com/zhenglinbo/comments/commentRss/191606.htmlhttp://m.shnenglu.com/zhenglinbo/services/trackbacks/191606.html
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 <= a < b <= 1000,000,000); both a and b are considered to be within the range .
Input
Line 1: Two integers, a and b
Output
The list of palindromic primes in numerical order, one per line.
Sample Input
5 500
Sample Output
5
7
11
101
131
151
181
191
313
353
373
383


#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int i;
int Is_Prime(int a)
{
    double t = a;
    for(i=2;i<=sqrt(t);i++)
    {
        if(a % i == 0)
            return 0;
    }
        return 1;
}
int diglen(int c)
{
    if(c/10 == 0)
        return 1;
    int count=0;
    while(c)
    {
        c=c/10;
        count++;
    }
    return count;
}

void IntoStr(int a,char* str) //数字{换ؓ字符?/span>
{
    int h= diglen(a)-1,i=0;
    while(h+1)
    {
    int k,c,d=1;
    for(k=0;k<h;k++)
    {
        d=d*10;
    }

    c=a/d;//取本ơ数字的最高位
    str[i++] = c+48;
    a = a%d; //取余?/span>
    h--;
    }
    str[i]='\0'; //最后末֊字符串结束符
}

int Is_Pal(int b)
{
    int len = diglen(b);
    int ok = 1,j;
    char* str = (char*)malloc(sizeof(char)*(len+1));
    IntoStr(b,str); //数字{换ؓ字符数组Q也可以用itoa函数?sprintf函数
    for(i=0,j=len-1;i < len/2;i++,j--)
    {
        if(str[i] != str[j])
            ok = 0;
        
    }
    free(str);
    if(ok == 1)
        return 1;
    else
        return 0;
}

int main()
{
    int a,b,j;
    scanf("%d%d",&a,&b);
    for(j=a;j<=b;j++)
    {
        if(Is_Prime(j) && Is_Pal(j))
            printf("%d\n",j);
    }
    return 0;
}


hoshelly 2012-09-22 17:45 发表评论
]]>
括号匚whttp://m.shnenglu.com/zhenglinbo/archive/2012/09/13/190522.htmlhoshellyhoshellyThu, 13 Sep 2012 07:11:00 GMThttp://m.shnenglu.com/zhenglinbo/archive/2012/09/13/190522.htmlhttp://m.shnenglu.com/zhenglinbo/comments/190522.htmlhttp://m.shnenglu.com/zhenglinbo/archive/2012/09/13/190522.html#Feedback0http://m.shnenglu.com/zhenglinbo/comments/commentRss/190522.htmlhttp://m.shnenglu.com/zhenglinbo/services/trackbacks/190522.html在处理表辑ּq程中需要对括号匚wq行验,括号匚w包括三种Q?#8220;(”?#8220;)”Q?#8220;[”?#8220;]”Q?#8220;{”?#8220;}”。例如表辑ּ中包含括号如下:

( ) [ ( ) ( [ ] ) ] { }
1 2 3 4 5 6 7 8 9 10 11 12
从上例可以看出第1和第2个括号匹配,W?和第10个括号匹配,4?匚wQ??匚wQ??匚wQ?1?2匚w。从中可以看到括号嵌套的的情冉|比较复杂的,使用堆栈可以很方便的处理q种括号匚w验,可以遵@以下规则Q?/span>

1?当接收第1个左括号Q表C新的一l匹配检查开始;随后如果q箋接收到左括号Q则不断q堆栈?/span>

2?当接受第1个右括号Q则和最新进栈的左括可行匹配,表示嵌套?l括号已l匹配消?/span>

3?若到最后,括号不能完全匚wQ则说明输入的表辑ּ有错

Input

W一行输入一个tQ表CZ面将有tl测试数据。接下来的t行的每行输入一个表辑ּQ表辑ּ只考虑英文半角状态输入,无需考虑中文全角输入

Output

对于每一行的表达式,查括h否匹配,匚w则输入okQ不匚w则输出error

Sample Input

2
(a+b)[4*5+(-6)]
[5*8]/{(a+b)-6
Sample Output

ok
error


代码Q?br />
#include<iostream>
#include<cstring>
#include<stack>
using namespace std;
int main()
{
    int t,len;
    stack<char> mystack;
    cin>>t;
    while(t--)
    {
        int ok=0;
        char str[100];
        cin>>str;
        len=strlen(str);
        for(int i=0;i<len;i++)
        {
           switch(str[i])
           {
              case '(':
              case '[':
              case '{':
                  mystack.push(str[i]);
                  break;
              case ')':
                  if(mystack.top() == '(')
                  {
                      mystack.pop();
                      ok=1;
                  }
                  break;
              case ']':
                  if(mystack.top() == '[')
                  {
                      mystack.pop();
                      ok=1;
                  }
                  break;
              case '}':
                  if(mystack.top() == '{')
                  {
                      mystack.pop();
                      ok=1;
                  }
                  break;
              defaultbreak;
           }
        }
        if(ok && mystack.empty())
            cout<<"ok"<<endl;
        else
            cout<<"error"<<endl;
    }

    return 0;
}
           


hoshelly 2012-09-13 15:11 发表评论
]]>
数制转换http://m.shnenglu.com/zhenglinbo/archive/2012/09/13/190521.htmlhoshellyhoshellyThu, 13 Sep 2012 07:10:00 GMThttp://m.shnenglu.com/zhenglinbo/archive/2012/09/13/190521.htmlhttp://m.shnenglu.com/zhenglinbo/comments/190521.htmlhttp://m.shnenglu.com/zhenglinbo/archive/2012/09/13/190521.html#Feedback0http://m.shnenglu.com/zhenglinbo/comments/commentRss/190521.htmlhttp://m.shnenglu.com/zhenglinbo/services/trackbacks/190521.htmlDescription

对于L十进制数转换为kq制Q包括整数部分和数部分转换。整数部分采用除k求余法,数部分采用乘k取整法例如x=19.125Q求2q制转换

整数部分19Q?span style="white-space:pre"> 数部分0.125
19 / 2 = 9 … 1 0.125 * 2 = 0.25 … 0
9 / 2 = 4 … 1 0.25 * 2 = 0.5   … 0
4 / 2 = 2 … 0 0.5 * 2 = 1     … 1
2 / 2 = 1 … 0
1 / 2 = 0 … 1
所以整数部分{?10011Q小数部分{?.001Q合h?0011.001 L堆栈实现上述数制转换

Input

W一行输入一个tQ表CZ面将有tl测试数据?/span>

接下来的t行的每行包含两个参数nQ?<n<10000Q且最多有8位小敎ͼ和kQ?<k<=16Q,n表示要{换的数|n可以带小敎ͼ也可以不带!Q,k表示要{换的数制Qk必须是正整数。大?0的进制数据用A\B\C\D\E\F表示

Output

对于每一l测试数据,每行输出转换后的l果Q小数部分大?位的Q只输出?位小?/span>

Sample Input

2
19.125 2
15.125 16
Sample Output

10011.001
F.2



代码
#include<iostream>
#include<stack>
using namespace std;
int main()
{
    stack<int> mystack;
    int t,m,k;
    double b,a;
    cin>>t;
    while(t--)
    {
        int c,x[100],d=0,i=0,count=0;
        cin>>b>>k;
        m=b;
        a=b-m;
        while(m)
        {
            c=m%k;
            m=m/k;
            mystack.push(c);
        }
        while(1)
        {
            d=a*k;
            if(d>=k)
                break;
            a=a*k;
            x[i++]=d;
            count++;
        }
        
        while(!mystack.empty())
        {
            if(mystack.top()<10)
            {
                cout<<mystack.top();
                mystack.pop();
            }
            else
            {
                switch(mystack.top())
                {
                  case 10: cout<<"A"; mystack.pop(); break;
                  case 11: cout<<"B"; mystack.pop(); break;
                  case 12: cout<<"C"; mystack.pop(); break;
                  case 13: cout<<"D"; mystack.pop(); break;
                  case 14: cout<<"E"; mystack.pop(); break;
                  case 15: cout<<"F"; mystack.pop(); break;
                }
            }
        }

        
        cout<<".";
        for(i=0;i<count;i++)
            cout<<x[i];
        cout<<endl;
    
    }
    return 0;
}


hoshelly 2012-09-13 15:10 发表评论
]]>
填充二维数组http://m.shnenglu.com/zhenglinbo/archive/2012/08/19/187679.htmlhoshellyhoshellySun, 19 Aug 2012 08:22:00 GMThttp://m.shnenglu.com/zhenglinbo/archive/2012/08/19/187679.htmlhttp://m.shnenglu.com/zhenglinbo/comments/187679.htmlhttp://m.shnenglu.com/zhenglinbo/archive/2012/08/19/187679.html#Feedback0http://m.shnenglu.com/zhenglinbo/comments/commentRss/187679.htmlhttp://m.shnenglu.com/zhenglinbo/services/trackbacks/187679.html
代码如下Q?br />
#include<stdio.h>
#define N 10
int Maxcom(int a, int b)
{
    while(a!=b)
    {
        if(a>b)
            a=a-b;
        else if(b>a)
            b=b-a;
    }
    return a;
}
int main()
{
    int a[N][N];
    int i,j,max;
    for(i=0;i<5;i++)
    {
        for(j=0;j<5;j++)
        {
            if(i==1 && j==1)
                a[i][j]=1;
            else if( i>0 && j>0)
            {
                max = Maxcom(i,j);
                if(max == 1)
                    a[i][j]=1;
                else
                    a[i][j]=0;
            }
            else
                a[i][j]=0;
        }
    }
    for(i=0;i<5;i++)
    {
        for(j=0;j<5;j++)
            printf("%d ",a[i][j]);
        printf("\n");
    }
    printf("\n");

    return 0;
}


hoshelly 2012-08-19 16:22 发表评论
]]>
字符串排?/title><link>http://m.shnenglu.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://m.shnenglu.com/zhenglinbo/archive/2012/08/19/187655.html</guid><wfw:comment>http://m.shnenglu.com/zhenglinbo/comments/187655.html</wfw:comment><comments>http://m.shnenglu.com/zhenglinbo/archive/2012/08/19/187655.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhenglinbo/comments/commentRss/187655.html</wfw:commentRss><trackback:ping>http://m.shnenglu.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<stdio.h><br />#include<<span style="color: #0000FF; ">string</span>.h><br />#include<stdlib.h><br /><span style="color: #0000FF; ">#define</span> Nmax 1000<br /><span style="color: #0000FF; ">#define</span> Mmax 10000<br /><span style="color: #0000FF; ">char</span> buf[Mmax]; <span style="color: #0000FF; ">int</span> M=0;<br /><span style="color: #0000FF; ">int</span> compare(<span style="color: #0000FF; ">const</span> <span style="color: #0000FF; ">void</span> *i, <span style="color: #0000FF; ">const</span> <span style="color: #0000FF; ">void</span> *j)<br />{<br />    <span style="color: #0000FF; ">return</span> strcmp(*(<span style="color: #0000FF; ">char</span> **)i, *(<span style="color: #0000FF; ">char</span> **)j);<br />}<br /><br /><span style="color: #0000FF; ">int</span> main()<br />{<br />    <span style="color: #0000FF; ">int</span> i, N;<br />    <span style="color: #0000FF; ">char</span> *a[Nmax];<br />    <span style="color: #0000FF; ">for</span>(N=0; N<Nmax; N++)<br />    {<br />        a[N]= &buf[M];<br />        <span style="color: #0000FF; ">if</span>(scanf("%s", a[N]) == EOF) <span style="color: #0000FF; ">break</span>;<br />        M+=strlen(a[N])+1;<br />    }<br /><br />    qsort(a,N,<span style="color: #0000FF; ">sizeof</span>(<span style="color: #0000FF; ">char</span>*),compare); <span style="color: #008000; ">//</span><span style="color: #008000; ">四个参数分别代表Q待排序的数l首地址Q数l中待排序的元素数量Q各元素占用的空_排序函数Q确定排序顺序)</span><span style="color: #008000; "><br /></span>    <span style="color: #0000FF; ">for</span>(i=0;i<N;i++)<br />        printf("%s\n",a[i]);<br /><br />    <span style="color: #0000FF; ">return</span> 0;<br />}</div><img src ="http://m.shnenglu.com/zhenglinbo/aggbug/187655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-19 10:49 <a href="http://m.shnenglu.com/zhenglinbo/archive/2012/08/19/187655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>计算最长空格序列的长度http://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187615.htmlhoshellyhoshellySat, 18 Aug 2012 13:59:00 GMThttp://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187615.htmlhttp://m.shnenglu.com/zhenglinbo/comments/187615.htmlhttp://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187615.html#Feedback0http://m.shnenglu.com/zhenglinbo/comments/commentRss/187615.htmlhttp://m.shnenglu.com/zhenglinbo/services/trackbacks/187615.html
#include<stdio.h>
#include<string.h>
#define N 1000
int main()
{
    char a[N];
    int i,j,k=0,count[100]={0},max;
    printf("Input the a string: "); //输入字符?/span>
    gets(a);
    for(i=0;a[i]!=0;i++)
    {
        while(a[i++] == ' ')
        {
            count[k]++;
            if(a[i+1]!=' ')
                k++;
        }
    }
    for(j=0;j<k;j++)
    {
        max=count[0];
        if(count[j]<count[j+1])
            max=count[j+1];
    }
    printf("%d\n",max);
    return 0;
}
    


hoshelly 2012-08-18 21:59 发表评论
]]>
字符串中单个I格代替多个I格http://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187614.htmlhoshellyhoshellySat, 18 Aug 2012 13:44:00 GMThttp://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187614.htmlhttp://m.shnenglu.com/zhenglinbo/comments/187614.htmlhttp://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187614.html#Feedback0http://m.shnenglu.com/zhenglinbo/comments/commentRss/187614.htmlhttp://m.shnenglu.com/zhenglinbo/services/trackbacks/187614.html// 水题
#include<stdio.h>
#include<string.h>
#define N 1000
int main()
{
    char a[N];
    int i,j;
    printf("Input the a string: "); //输入字符?/span>
    gets(a);
    for(i=0;a[i]!=0;i++)
    {
        while(a[i] == ' ' && a[i+1] == ' ')
        {
            for(j=i;a[j]!=0;j++)
                a[j]=a[j+1];
        }
    }
    printf("%s",a);
    return 0;
}
    

hoshelly 2012-08-18 21:44 发表评论
]]>
子串是否存在(2.0版本Q?/title><link>http://m.shnenglu.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://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187612.html</guid><wfw:comment>http://m.shnenglu.com/zhenglinbo/comments/187612.html</wfw:comment><comments>http://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187612.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhenglinbo/comments/commentRss/187612.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zhenglinbo/services/trackbacks/187612.html</trackback:ping><description><![CDATA[~写一个程序,输入一个字W串 a Qƈ且输入一l子串的序列Q字W序列之间用I格隔开Q打印出那些为字W串 a 的子丌Ӏ(本次输入的子串不分先后,可以 a 的子串在前面Q亦可非 a 的子串在前面)<br /><br />代码试通过Q?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<stdio.h><br />#include<<span style="color: #0000FF; ">string</span>.h><br /><span style="color: #0000FF; ">#define</span> N 1000<br /><span style="color: #0000FF; ">int</span> main()<br />{<br />    <span style="color: #0000FF; ">char</span> a[N],b[100];<br />    <span style="color: #0000FF; ">int</span> i,j;<br />    printf("Input the a string: "); <span style="color: #008000; ">//</span><span style="color: #008000; ">输入字符?/span><span style="color: #008000; "><br /></span>    gets(a);<br />    <span style="color: #0000FF; ">while</span>((scanf("%s",b)) != EOF ) <span style="color: #008000; ">//</span><span style="color: #008000; ">输入要检的子串</span><span style="color: #008000; "><br /></span>    {<br />        <span style="color: #0000FF; ">for</span>(i=0;a[i]!=0;i++) <span style="color: #008000; ">//</span><span style="color: #008000; ">开始检?/span><span style="color: #008000; "><br /></span>        {<br />            <span style="color: #0000FF; ">for</span>(j=0;b[j]!=0;j++) <br />            {<br />                <span style="color: #0000FF; ">if</span>(a[i+j]!=b[j]) <span style="color: #008000; ">//</span><span style="color: #008000; ">如果字符不匹配,则退出本ơ@环,q行W一层@环i+1</span><span style="color: #008000; "><br /></span>                    <span style="color: #0000FF; ">break</span>;<br />            }<br />            <span style="color: #0000FF; ">if</span>(b[j] == '\0') <span style="color: #008000; ">//</span><span style="color: #008000; ">如果b[j] = '\0'Q则说明字符匚wC子串的最后,匚w成功Q输出子?/span><span style="color: #008000; "><br /></span>                printf("%s\n",b);<br />        }<br />    }<br />    <span style="color: #0000FF; ">return</span> 0;<br />}<br /><br />输出l果实例Q?br /><br /><img src="http://m.shnenglu.com/images/cppblog_com/zhenglinbo/QQ截图20120818212929.jpg" width="267" height="96" alt="" /></div><img src ="http://m.shnenglu.com/zhenglinbo/aggbug/187612.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-18 21:31 <a href="http://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187612.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>子串是否存?/title><link>http://m.shnenglu.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://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187611.html</guid><wfw:comment>http://m.shnenglu.com/zhenglinbo/comments/187611.html</wfw:comment><comments>http://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187611.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhenglinbo/comments/commentRss/187611.html</wfw:commentRss><trackback:ping>http://m.shnenglu.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<stdio.h><br />#include<<span style="color: #0000FF; ">string</span>.h><br /><span style="color: #0000FF; ">#define</span> N 1000<br /><span style="color: #0000FF; ">int</span> main()<br />{<br />    <span style="color: #0000FF; ">char</span> a[N],b[N];<br />    <span style="color: #0000FF; ">int</span> i,j=0,k,count=1,z;<br />    <span style="color: #0000FF; ">static</span> <span style="color: #0000FF; ">int</span> c=0;<br />    printf("Input the a string: "); <span style="color: #008000; ">//</span><span style="color: #008000; ">输入字符?/span><span style="color: #008000; "><br /></span>    gets(a);<br />    printf("Input the substring: "); <span style="color: #008000; ">//</span><span style="color: #008000; ">输入的子串Q按先a的子Ԍ后非a的子串输?/span><span style="color: #008000; "><br /></span>    gets(b);<br /><br />    <span style="color: #0000FF; ">for</span>(i=0;a[i]!=0;i++)<br />    {<br />        z=0;<br />        <span style="color: #0000FF; ">for</span>(j=c;b[j]!=0;j++,z++)<br />        {<br />            <br />            <span style="color: #0000FF; ">if</span>(a[i+z]!= b[j] && b[j]!= ' ')<br />                <span style="color: #0000FF; ">break</span>;<br />            <span style="color: #0000FF; ">else</span> <span style="color: #0000FF; ">if</span>( b[j] == ' ')<br />            {<br />                <span style="color: #0000FF; ">for</span>(k=c;k<j;k++)<br />                {<br />                    printf("%c",b[k]); <span style="color: #008000; ">//</span><span style="color: #008000; ">打印出子Ԍ不是子串的不打印?/span><span style="color: #008000; "><br /></span>                }<br />                printf("\n");<br />                c=j+1;<span style="color: #008000; ">//</span><span style="color: #008000; ">跌I格</span><span style="color: #008000; "><br /></span>            }<br />            <br />        }<br />    }<br />    <span style="color: #0000FF; ">return</span> 0;<br />}<br />    </div><img src ="http://m.shnenglu.com/zhenglinbo/aggbug/187611.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-18 21:14 <a href="http://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187611.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>回文字符?/title><link>http://m.shnenglu.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://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187599.html</guid><wfw:comment>http://m.shnenglu.com/zhenglinbo/comments/187599.html</wfw:comment><comments>http://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187599.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhenglinbo/comments/commentRss/187599.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zhenglinbo/services/trackbacks/187599.html</trackback:ping><description><![CDATA[~写一E序Q检查一l定字符串是否是回文的程序(順读和倒读都是一L字符ԌQ不考虑I格。例如,对于字符?if i had a hifi Q你的程序应该报告成功,否则打印p|?br /><br />代码试通过Q?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<stdio.h><br />#include<<span style="color: #0000FF; ">string</span>.h><br /><span style="color: #0000FF; ">#define</span> N 1000<br /><span style="color: #0000FF; ">int</span> main()<br />{<br />    <span style="color: #0000FF; ">char</span> a[N];<br />    <span style="color: #0000FF; ">int</span> i,n,m;<br />    printf("Input the string: ");<br />    gets(a);<br />    m=strlen(a);<br />    n=strlen(a)/2;<br />    <span style="color: #0000FF; ">for</span>(i=0;i<n;i++,m--)<br />    {<br />        <span style="color: #0000FF; ">if</span>(a[i] == ' ')<br />        {<br />            i++;<br />        }<br />        <span style="color: #0000FF; ">if</span>(a[m-1] == ' ')<br />        {<br />            m--;<br />        }<br /><br />        <span style="color: #0000FF; ">if</span>(a[i] != a[m-1])<br />            <span style="color: #0000FF; ">break</span>;<br />    }<br />    <span style="color: #0000FF; ">if</span>( i == n)<br />        printf("succeed!\n");<br />    <span style="color: #0000FF; ">else</span><br />        printf("No\n");<br />     <br />    <span style="color: #0000FF; ">return</span> 0;<br />    <br />}</div><img src ="http://m.shnenglu.com/zhenglinbo/aggbug/187599.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-18 15:20 <a href="http://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187599.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>字符频率http://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187580.htmlhoshellyhoshellySat, 18 Aug 2012 03:43:00 GMThttp://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187580.htmlhttp://m.shnenglu.com/zhenglinbo/comments/187580.htmlhttp://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187580.html#Feedback0http://m.shnenglu.com/zhenglinbo/comments/commentRss/187580.htmlhttp://m.shnenglu.com/zhenglinbo/services/trackbacks/187580.html
代码试通过Q?br />
#include<stdio.h>
#define N 1000
int main()
{
    char a[N];
    int b[N]={0};
    int i,c[N]={0};
    printf("Input the string: ");
    gets(a);
    for(i=0;a[i]!='\0';i++)
    {
        b[a[i]]++;
    }
    for(i=0;a[i]!=0;i++)
    {
        if(c[a[i]] == 0)
        {
           printf("%c : %d\n",a[i],b[a[i]]);
           c[a[i]]=1;
        }
    }
    printf("\n");
    return 0;
}


hoshelly 2012-08-18 11:43 发表评论
]]>
字符串查?/title><link>http://m.shnenglu.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://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187577.html</guid><wfw:comment>http://m.shnenglu.com/zhenglinbo/comments/187577.html</wfw:comment><comments>http://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187577.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhenglinbo/comments/commentRss/187577.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zhenglinbo/services/trackbacks/187577.html</trackback:ping><description><![CDATA[扑և单词在字W串中的位置<br /><br />代码Q?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<stdio.h> <br /><span style="color: #0000FF; ">#define</span> N 1000<br /><span style="color: #0000FF; ">#define</span> M 100<br /><span style="color: #0000FF; ">int</span> main()<br />{<br />    <span style="color: #0000FF; ">char</span> a[N], b[M];<br />    <span style="color: #0000FF; ">int</span> i,j,n;<br />    printf("Input the string: ");<br />    gets(a);<br />    printf("Input the word: ");<br />    gets(b);<br />    <span style="color: #0000FF; ">for</span>(i=0;a[i]!='\0';i++)<br />    {<br />        <span style="color: #0000FF; ">for</span>(j=0;b[j]!='\0';j++)<br />        {<br />            <span style="color: #0000FF; ">if</span>(a[i+j]!=b[j]) <span style="color: #0000FF; ">break</span>;<br />        }<br />        <span style="color: #0000FF; ">if</span>(b[j] == '\0')<br />            printf("%d ",i);<br />        <br />    }<br />    printf("\n");<br />    <span style="color: #0000FF; ">return</span> 0;<br />}</div><img src ="http://m.shnenglu.com/zhenglinbo/aggbug/187577.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-18 11:15 <a href="http://m.shnenglu.com/zhenglinbo/archive/2012/08/18/187577.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>链表节点?/title><link>http://m.shnenglu.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://m.shnenglu.com/zhenglinbo/archive/2012/08/17/187433.html</guid><wfw:comment>http://m.shnenglu.com/zhenglinbo/comments/187433.html</wfw:comment><comments>http://m.shnenglu.com/zhenglinbo/archive/2012/08/17/187433.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhenglinbo/comments/commentRss/187433.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zhenglinbo/services/trackbacks/187433.html</trackback:ping><description><![CDATA[~写一个返回@环链表中节点数的函数<br /><br />实现代码如下Q?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<stdio.h><br />#include<stdlib.h><br />typedef <span style="color: #0000FF; ">struct</span> node *link;<br /><span style="color: #0000FF; ">struct</span> node{ <span style="color: #0000FF; ">int</span> item; link next; };<br /><br /><span style="color: #0000FF; ">int</span> node_number(link p,<span style="color: #0000FF; ">int</span> n)<br />{<br />    <span style="color: #0000FF; ">int</span> count=0,i;<br />    <span style="color: #0000FF; ">for</span>(i=0;i<n-1;i++)<br />    {<br />        p=p->next;<br />    }<br />    <span style="color: #0000FF; ">while</span>(p->item)<br />    {<br />        p->item=0;<br />        p=p->next;<br />        count++;<br />    }<br />    <span style="color: #0000FF; ">return</span> count;<br />}<br /><br /><span style="color: #0000FF; ">int</span> main()<br />{<br />    <br />    <span style="color: #0000FF; ">int</span> i,N;<br />    link t=(link)malloc(<span style="color: #0000FF; ">sizeof</span>(node));<br />    t->item=1;<br />    t->next=t;<br />    link x=t;<br />    <span style="color: #0000FF; ">for</span>(i=2;i<=10;i++)<br />    {<br />        x = (x->next= (link)malloc(<span style="color: #0000FF; ">sizeof</span>(node)));<br />        x->item=i;<br />        x->next=t;<br />    }<br />    printf("Please input the order of node: ");<br />    scanf("%d",&N);<br />    printf("total number of nodes is: %d\n",node_number(t,N));<br />    <span style="color: #0000FF; ">return</span> 0;<br />}</div><img src ="http://m.shnenglu.com/zhenglinbo/aggbug/187433.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-17 01:43 <a href="http://m.shnenglu.com/zhenglinbo/archive/2012/08/17/187433.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用循环链表解决U瑟夫问?/title><link>http://m.shnenglu.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://m.shnenglu.com/zhenglinbo/archive/2012/08/17/187428.html</guid><wfw:comment>http://m.shnenglu.com/zhenglinbo/comments/187428.html</wfw:comment><comments>http://m.shnenglu.com/zhenglinbo/archive/2012/08/17/187428.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhenglinbo/comments/commentRss/187428.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zhenglinbo/services/trackbacks/187428.html</trackback:ping><description><![CDATA[假设有N个h军_选出一个领ghQ方法如下:所有h排成一个圆圈,按顺序数敎ͼ每隔WM个h出局Q此时他两边的h靠拢重新形成圆圈。问题是扑և哪一个h会是最后剩下的那个人。我们希望打印出所有h的出局序和最后选出的领gh是哪一位?br /><br />q个问题UCؓU瑟夫问题,可以利用链表解决?br /><br />代码如下Q?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; "> </span> <span style="color: #008000; ">//</span><span style="color: #008000; ">U瑟夫问?/span><span style="color: #008000; "><br /></span><span style="color: #008080; "> </span> <span style="color: #008000; "></span><br /><span style="color: #008080; "> </span> #include<stdio.h><br /><span style="color: #008080; "> </span> #include<stdlib.h><br /><span style="color: #008080; "> </span> typedef <span style="color: #0000FF; ">struct</span> node *link;<br /><span style="color: #008080; "> </span> <span style="color: #0000FF; ">struct</span> node { <span style="color: #0000FF; ">int</span> item; link next; }; <span style="color: #008000; ">//</span><span style="color: #008000; ">定义l点</span><span style="color: #008000; "><br /></span><span style="color: #008080; "> </span> <span style="color: #008000; "></span><span style="color: #0000FF; ">int</span> main()<br /><span style="color: #008080; "> </span> {<br /><span style="color: #008080; "> </span>    <span style="color: #0000FF; ">int</span> i,N,M;<br />     printf("Input N and M: "); <span style="color: #008000; ">//</span><span style="color: #008000; ">N表示共有N个hQM表示每隔WM个h要出局</span><span style="color: #008000; "><br /></span> <span style="color: #008000; "></span>    scanf("%d%d",&N,&M);<br />     link t = (link)malloc(<span style="color: #0000FF; ">sizeof</span>(node)); <span style="color: #008000; ">//</span><span style="color: #008000; ">新徏l点t</span><span style="color: #008000; "><br /></span> <span style="color: #008000; "></span>    link x=t; <br />     t->item = 1; t->next=t; <span style="color: #008000; ">//</span><span style="color: #008000; ">创徏一个代?L单个节点的@环链?/span><span style="color: #008000; "><br /></span> <span style="color: #008000; "></span>    <span style="color: #0000FF; ">for</span>(i=2;i<=N;i++)<br />     {<br />         x=(x->next= (link)malloc(<span style="color: #0000FF; ">sizeof</span>(node)));<span style="color: #008000; ">//</span><span style="color: #008000; ">?~Nh序插C前创建的单个节点的@环链表中</span><span style="color: #008000; "><br /></span> <span style="color: #008000; "></span>        x->item=i; x->next=t;<br />     }<br /> <br />     <span style="color: #0000FF; ">while</span>(x!= x->next) <span style="color: #008000; ">//</span><span style="color: #008000; ">如果不是最后一个节点,因ؓ是@环链表,所以x!=x->next</span><span style="color: #008000; "><br /></span> <span style="color: #008000; "></span>    {<br />         <span style="color: #0000FF; ">for</span>(i=1;i<M;i++) <span style="color: #008000; ">//</span><span style="color: #008000; ">则顺着链表向前遍历Q数出M-1个元?/span><span style="color: #008000; "><br /></span> <span style="color: #008000; "></span>            x=x->next;<br />         printf("%d ",x->next->item);<br />         x->next = x->next->next; <span style="color: #008000; ">//</span><span style="color: #008000; ">删除WM个元?/span><span style="color: #008000; "><br /></span> <span style="color: #008000; "></span>        N--; <span style="color: #008000; ">//</span><span style="color: #008000; ">节点数减1</span><span style="color: #008000; "><br /></span> <span style="color: #008000; "></span>    }<br />     printf("\n%d\n",x->item); <span style="color: #008000; ">//</span><span style="color: #008000; ">最后打印出最后一个节?/span><span style="color: #008000; "><br /></span> <span style="color: #008000; "></span>    <span style="color: #0000FF; ">return</span> 0;<br /> }</div><img src ="http://m.shnenglu.com/zhenglinbo/aggbug/187428.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-17 00:14 <a href="http://m.shnenglu.com/zhenglinbo/archive/2012/08/17/187428.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最q点对的计算http://m.shnenglu.com/zhenglinbo/archive/2012/08/14/187206.htmlhoshellyhoshellyTue, 14 Aug 2012 13:39:00 GMThttp://m.shnenglu.com/zhenglinbo/archive/2012/08/14/187206.htmlhttp://m.shnenglu.com/zhenglinbo/comments/187206.htmlhttp://m.shnenglu.com/zhenglinbo/archive/2012/08/14/187206.html#Feedback0http://m.shnenglu.com/zhenglinbo/comments/commentRss/187206.htmlhttp://m.shnenglu.com/zhenglinbo/services/trackbacks/187206.html
E序如下Q?br />
typedef structfloat x; float y; } point; //定义点的数据cd
float distance(point,point); //两点之间距离函数
float distance(point a,point b)

   float dx= a.x - b.x, dy= a.y - b.y;
   return sqrt(dx*dx + dy*dy);
}
//以上为头文g Point.h 的内?/span>



#include<stdio.h> 
#include<stdlib.h>
#include<math.h>
#include "Point.h"
float randFloat()
{  return 1.0*rand()/RAND_MAX; } //产生随机数的函数
int main()
{
    float d,N;
    int i,j,cnt=0;
    scanf("%f%f",&d,&N); //d求两点之间距d于的长度QN为测试的?nbsp;
    point *a = (point *)malloc(sizeof(point)*N); //动态生成数据类型ؓpoint的数la
    for(i=0;i<N;i++)
{
a[i].x = randFloat(); a[i].y = randFloat(); 
}
    for(i=0;i<N;i++)
        for(j=i+1;j<N;j++)
            if(distance(a[i],a[j])<d) //如果两点之间的距d于dQ那么cnt?
                     cnt++;
    printf("%d edges shorter than %f\n",cnt,d); //输出有多条边的长度于d
    return 0;
}


hoshelly 2012-08-14 21:39 发表评论
]]>
抛硬币的模拟实验http://m.shnenglu.com/zhenglinbo/archive/2012/08/14/187135.htmlhoshellyhoshellyTue, 14 Aug 2012 02:37:00 GMThttp://m.shnenglu.com/zhenglinbo/archive/2012/08/14/187135.htmlhttp://m.shnenglu.com/zhenglinbo/comments/187135.htmlhttp://m.shnenglu.com/zhenglinbo/archive/2012/08/14/187135.html#Feedback0http://m.shnenglu.com/zhenglinbo/comments/commentRss/187135.htmlhttp://m.shnenglu.com/zhenglinbo/services/trackbacks/187135.html
//模拟抛硬币的实验

#include<stdio.h>
#include<stdlib.h>
int heads()   //q回0或非0?/span>
{
    return rand() <RAND_MAX/2;
}

int main()
{
    int i,j,cnt;
    int N,M;
    scanf("%d%d",&N,&M); //抛一枚硬币N=32ơ,如此做M=1000ơ这L实验
    int *f=(int *)malloc((N+1)*sizeof(int));
    for(j=1;j<=N;j++) //初始化数l全部ؓ0?/span>
        f[j]=0;
    for(i=1;i<M;i++,f[cnt]++)  //开始抛币Qf[cnt]记录Wcntơ抛币出现正面的次?/span>
        for(cnt=1,j=1;j<=N;j++) //开始第一轮共32ơ的抛硬币实?/span>
            if(heads())    cnt++; //如果出现正面Q即heads()q回gؓ1Q则对应着f[cnt]++,同时cnt++,此处利用数组索引l计正面出现ơ数Q负面数l值始lؓ0
            
    for(j=1;j<=N;j++)
    {
        printf("%2d ",j);
        for(i=0;i<f[j];i+=10) printf("*"); //正面每出现十ơ打C个星?/span>
        printf("\n");
    }
    return 0;
}


hoshelly 2012-08-14 10:37 发表评论
]]>
用链表实现学生成l的排序http://m.shnenglu.com/zhenglinbo/archive/2012/08/12/187018.htmlhoshellyhoshellySun, 12 Aug 2012 14:23:00 GMThttp://m.shnenglu.com/zhenglinbo/archive/2012/08/12/187018.htmlhttp://m.shnenglu.com/zhenglinbo/comments/187018.htmlhttp://m.shnenglu.com/zhenglinbo/archive/2012/08/12/187018.html#Feedback0http://m.shnenglu.com/zhenglinbo/comments/commentRss/187018.htmlhttp://m.shnenglu.com/zhenglinbo/services/trackbacks/187018.html
#include<stdio.h>
#include<stdlib.h>
struct Stu
{
    int score;
    struct Stu *next;
};
typedef struct Stu Node;
int main()
{
    int i;
    Node *head,*p,*q;
    head=(Node*)malloc(sizeof(Node)); //创徏头结?/span>
    if(head == NULL)
    {
        printf("Memory is not enough!");
        return 0;
    }
    head->next=NULL;
    for(i=0;i<10;i++)
    {
        p=(Node*)malloc(sizeof(Node)); //创徏一个新l点p
        if(p == NULL)
        {
            printf("no enough memory!");
            return 0;
        }
        printf("Input the %dth student's score: ",i+1);
        scanf("%d",&p->score); //输入成W
        q=head;
        while(q->next != NULL) //遍历链表
        {
            if(q->next->score < p->score) //如果发现链表中的某个成W比当前输入成l小Q就跛_循环Q在其前面插入当前输入成l?/span>
                break;
            q=q->next; //l箋遍历直到遍历的成l比当前输入的成l小
        }
        p->next=q->next; //q是当前成W插入到链表中比其的成W前面的代?/span>
        q->next=p;

    }
    p=head->next;
    while(p !=NULL)  
    {
        printf("%d ",p->score);
        p=p->next;
    }

p=head;
while(p->next !=NULL)
{
    q=p->next;
    p->next=q->next;
    free(q);
}
free(head);

return 0;
}



hoshelly 2012-08-12 22:23 发表评论
]]>
l计子字W串出现ơ数http://m.shnenglu.com/zhenglinbo/archive/2012/08/12/186991.htmlhoshellyhoshellySun, 12 Aug 2012 08:05:00 GMThttp://m.shnenglu.com/zhenglinbo/archive/2012/08/12/186991.htmlhttp://m.shnenglu.com/zhenglinbo/comments/186991.htmlhttp://m.shnenglu.com/zhenglinbo/archive/2012/08/12/186991.html#Feedback0http://m.shnenglu.com/zhenglinbo/comments/commentRss/186991.htmlhttp://m.shnenglu.com/zhenglinbo/services/trackbacks/186991.html
思想Qlen2为子串的长度Q设|变?i =0, 利用strncmp函数str+i 开始的len2个字W与子串substrq行比较Q如果相{,则count?Q此?i ?len2Q如果不{,?i ?Ql寻找?br />
代码试通过Q?br />
#include<stdio.h>
#include<string.h>
int totsubstrnum(char *str, char *substr);
int main()
{
    char str[80],substr[80];
    printf("Input string: ");
    gets(str);
    printf("Input substring: ");
    gets(substr);
    printf("count = %d\n",totsubstrnum(str,substr));

    return 0;
}

int totsubstrnum(char *str, char *substr)
{
    int i=0,count=0,len1,len2;
    len1=strlen(str);
    len2=strlen(substr);
    while(i <= len1-len2)
    {
        if(strncmp(str+i,substr,len2) == 0)
        {
            count++;
            i +=len2;
        }
        else
            i++;
    }
    return (count);
}


hoshelly 2012-08-12 16:05 发表评论
]]>
左移n个字W串http://m.shnenglu.com/zhenglinbo/archive/2012/08/12/186983.htmlhoshellyhoshellySun, 12 Aug 2012 06:14:00 GMThttp://m.shnenglu.com/zhenglinbo/archive/2012/08/12/186983.htmlhttp://m.shnenglu.com/zhenglinbo/comments/186983.htmlhttp://m.shnenglu.com/zhenglinbo/archive/2012/08/12/186983.html#Feedback0http://m.shnenglu.com/zhenglinbo/comments/commentRss/186983.htmlhttp://m.shnenglu.com/zhenglinbo/services/trackbacks/186983.html
代码试通过Q?br />

#include<stdio.h>
#include<string.h>
void strlshif(char *s, int n);
void main()
{
    char str[]="0123456789";
    strlshif(str,3);
    printf("%s\n",str);
}

void strlshif(char *s, int n)
{
    int i,len;
    char ch;
    len=strlen(s);
    for(i=0;i<n;i++)
    {
        ch=s[0];
        strncpy(s,s+1,len-1);
        s[len-1]=ch;
    }
}

那么若是不用strncpy函数功能Q如何指定的字W串左移n位?
代码试通过Q如下:

#include<stdio.h>
#include<string.h>
int main()
{
    char str[]="0123456789";
    char sstr[80]={0}; //使用一数组储存Ud后的字符?/span>
    char *p;
    int c,j;
    static int i,n;
    p=&str[0];
    printf("input the number: \n");
    scanf("%d",&n); //输入要左Uȝ前n个字W,卛_qn个字W移动到最后面
    c=n;
    while( c-- && p++ ); //扑ֈ没有Udq的剩下的全部字W,把它们储存在数组sstr ?/span>

        for(i=0;i<strlen(str)-n;i++)
        {
            sstr[i]= *p;
            p++;
        }
        p=&str[0];  //指针指向W一个字W?/span>
        for(j=i;j<strlen(str);j++) //要Ud的字W一个一个地“?#8221;到数lsstr后面
        {
            sstr[j]= *p;
            p++;
        }
        sstr[j]='\0'; //最后字W串l尾?\0'
        printf("%s",sstr);  
        return 0;
}



        


hoshelly 2012-08-12 14:14 发表评论
]]>
取某字符串的子串http://m.shnenglu.com/zhenglinbo/archive/2012/08/12/186970.htmlhoshellyhoshellySun, 12 Aug 2012 03:45:00 GMThttp://m.shnenglu.com/zhenglinbo/archive/2012/08/12/186970.htmlhttp://m.shnenglu.com/zhenglinbo/comments/186970.htmlhttp://m.shnenglu.com/zhenglinbo/archive/2012/08/12/186970.html#Feedback0http://m.shnenglu.com/zhenglinbo/comments/commentRss/186970.htmlhttp://m.shnenglu.com/zhenglinbo/services/trackbacks/186970.html// s 是字W串 startloc 是开始取的位|?  len表示取得子串长度
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void substr(char *s, int startloc,int len)
{
    if((startloc < 0) || (startloc >= strlen(s)) || (len<0))
    {
        printf("input error!");
        exit(0);
    }
    int i,c=0;
    char sstr[80];
    while(*s !='\0')
    {
        if(c!=startloc)
        {
            ++c;
            s++;
        }
        else
        {
            for(i=0;i<len;i++)
            {
                sstr[i]= *s;
                s++;
            }
            sstr[i]='\0';
            break;
        }
    }
    printf("%s",sstr);
}

int main()
{
    char str[80];
    int s,l;
    printf("Input string: ");
    gets(str);
    printf("Start Location: ");
    scanf("%d",&s);
    printf("Substring length: ");
    scanf("%d",&l);
    substr(str,s,l);
    return 0;
}

    

hoshelly 2012-08-12 11:45 发表评论
]]>
实现mystrcat()函数http://m.shnenglu.com/zhenglinbo/archive/2012/08/12/186961.htmlhoshellyhoshellySun, 12 Aug 2012 02:16:00 GMThttp://m.shnenglu.com/zhenglinbo/archive/2012/08/12/186961.htmlhttp://m.shnenglu.com/zhenglinbo/comments/186961.htmlhttp://m.shnenglu.com/zhenglinbo/archive/2012/08/12/186961.html#Feedback0http://m.shnenglu.com/zhenglinbo/comments/commentRss/186961.htmlhttp://m.shnenglu.com/zhenglinbo/services/trackbacks/186961.html

代码试通过Q?br />
#include<stdio.h>
void mystrcat( char *str,char *destr)
{
    while(*str !='\0')
        str++;
    while(*destr !='\0')
    {
        *str = *destr;
        str++;
        destr++;
    }

    *str = '\0';
}

int main()
{
    char str[30],destr[30];
    printf("input string and substring: ");
    scanf("%s%s",str,destr);
    mystrcat(str,destr);
    printf("%s",str);
    return 0;
}


hoshelly 2012-08-12 10:16 发表评论
]]>
整数转ؓ字符?/title><link>http://m.shnenglu.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://m.shnenglu.com/zhenglinbo/archive/2012/08/12/186958.html</guid><wfw:comment>http://m.shnenglu.com/zhenglinbo/comments/186958.html</wfw:comment><comments>http://m.shnenglu.com/zhenglinbo/archive/2012/08/12/186958.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhenglinbo/comments/commentRss/186958.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zhenglinbo/services/trackbacks/186958.html</trackback:ping><description><![CDATA[~写一递归函数一Ҏ数n转换成字W串Q例如输?82Q应输出字符?#8220;482”。n的位C定Q可以是L位数的整数?br /><br />代码试通过Q?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<stdio.h><br />#include<<span style="color: #0000FF; ">string</span>.h><br /><span style="color: #0000FF; ">void</span> IntToStr(<span style="color: #0000FF; ">int</span> n);<br /><span style="color: #0000FF; ">char</span> str[80]={0};<br /><span style="color: #0000FF; ">int</span> main()<br />{<br />    <span style="color: #0000FF; ">int</span> num;<br />    printf("input an integer number: ");<br />    scanf("%d",&num);<br />    IntToStr(num);<br />    printf("The string is: %s\n",str);<br />    <span style="color: #0000FF; ">return</span> 0;<br />}<br /><br /><span style="color: #0000FF; ">void</span> IntToStr(<span style="color: #0000FF; ">int</span> n)<br />{<br />    <span style="color: #0000FF; ">int</span> i;<br />    <span style="color: #0000FF; ">if</span>(n == 0)<br />        <span style="color: #0000FF; ">return</span>;<br />    <span style="color: #0000FF; ">for</span>(i=strlen(str)-1;i>=0;i--)<br />        str[i+1]=str[i]; <span style="color: #008000; ">//</span><span style="color: #008000; ">向后UM?/span><span style="color: #008000; "><br /></span>    str[0]=n%10+0x30; <span style="color: #008000; ">//</span><span style="color: #008000; ">最开始输入的数字最后一位放在str[0],随后向后U,直到n==0 </span><span style="color: #008000; "><br /></span>    IntToStr(n/10); <span style="color: #008000; ">//</span><span style="color: #008000; ">n不断取除个位的其他高位数</span><span style="color: #008000; "><br /></span>}<br /><br /><br /><br /><br />    </div><img src ="http://m.shnenglu.com/zhenglinbo/aggbug/186958.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-12 09:58 <a href="http://m.shnenglu.com/zhenglinbo/archive/2012/08/12/186958.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>单词的长?/title><link>http://m.shnenglu.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://m.shnenglu.com/zhenglinbo/archive/2012/08/11/186919.html</guid><wfw:comment>http://m.shnenglu.com/zhenglinbo/comments/186919.html</wfw:comment><comments>http://m.shnenglu.com/zhenglinbo/archive/2012/08/11/186919.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zhenglinbo/comments/commentRss/186919.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zhenglinbo/services/trackbacks/186919.html</trackback:ping><description><![CDATA[输入若干个单词,输出它们的^均长度。单词只包括大写字母和小写字母,用一个空格隔开?br /><br />代码试通过Q?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<stdio.h><br />#include<<span style="color: #0000FF; ">string</span>.h><br /><span style="color: #0000FF; ">int</span> main()<br />{<br />    <span style="color: #0000FF; ">char</span> s[1000];<br />    <span style="color: #0000FF; ">char</span> *p;<br />    p=&s[0];<br />    <span style="color: #0000FF; ">int</span> len=0,tot=0,ws=0,per_len,i;<br />    gets(s);<br />    len=strlen(s);<br />    <span style="color: #0000FF; ">for</span>(i=0;i<=len;i++)<br />    {<br />        <span style="color: #0000FF; ">if</span>( *p >='a' && *p<='z' || *p >='A' && *p<='Z')<br />        {<br />            tot++;<br />            p++;<br />        }<br /><br />        <span style="color: #0000FF; ">else</span> <span style="color: #0000FF; ">if</span>( *p == ' ' || *p =='\0')<br />        {<br />            ws++;<br />            p++;<br />        }<br />    }<br /><br />    per_len=tot/ws;<br />    printf("%d\n",per_len);<br /><br />    <span style="color: #0000FF; ">return</span> 0;<br />}</div><img src ="http://m.shnenglu.com/zhenglinbo/aggbug/186919.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zhenglinbo/" target="_blank">hoshelly</a> 2012-08-11 23:11 <a href="http://m.shnenglu.com/zhenglinbo/archive/2012/08/11/186919.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>倒三角Şhttp://m.shnenglu.com/zhenglinbo/archive/2012/08/10/186847.htmlhoshellyhoshellyFri, 10 Aug 2012 12:24:00 GMThttp://m.shnenglu.com/zhenglinbo/archive/2012/08/10/186847.htmlhttp://m.shnenglu.com/zhenglinbo/comments/186847.htmlhttp://m.shnenglu.com/zhenglinbo/archive/2012/08/10/186847.html#Feedback0http://m.shnenglu.com/zhenglinbo/comments/commentRss/186847.htmlhttp://m.shnenglu.com/zhenglinbo/services/trackbacks/186847.html
#########
  #######
    #####
      ###
        #

代码试通过Q?br />
#include<stdio.h>
int main()
{
    int n,s,i,j,k,c=0;
    scanf("%d",&n);
    s=2*n-1;
    for(i=0;i<n;i++)
    {
          if(c!=0) //如果不是W一行,即s要减2Q作?的个?/span>
              s=s-2;
          for(k=0;k<c;k++)
          {
            printf(" ");
          }
          for(j=0;j<s;j++)
          {
            printf("#");
          }
          for(k=0;k<c;k++)
          {
              printf(" ");
          }
          c++;
        

        printf("\n");
    }
    return 0;
        
}
        


hoshelly 2012-08-10 20:24 发表评论
]]>
һþ֪ۺϾþ| Ʒþþþþ| þƵ6| þþþùɫAVѿͼƬ| ɫʹþۺ| ˾þվ| 91þþþþۺ| þþžžþƷֱ| ޹ƷۺϾþ| Ʒ԰״̼þþ| þþþ?V| þþƷһAV| þþþþۺһĻ| ޹Ƶþ| ھƷѾþӰԺ| ޾ƷƷþ99һ| 㽶þþþ| ˾þô߽ۺAv| þþƷһapp| þ÷׾Ʒ| ձWVһһþ㽶| ɫۺϺϾþۺӿ| þѿaëƬ| þˬˬAVƬ| ƷѾþ| ŷһƷþ| þùѾƷ| ޾ƷþþþþҲ| þþƷ޾Ʒ| Ʒ99þaaaһëƬ| ž99Ʒþþþþ| ƷþþþþóAV| ɫþþۺ| þþþþþòҰ¸߳| þAV| þ99Ʒþþþþ벥| 91޹˾þþƷ| 99þþƷž޾Ʒ| þþƷ| þ99Ʒ99þ6| þþþרav|