﻿<?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++博客-遥不可及</title><link>http://www.cppblog.com/zengwei0771/</link><description /><language>zh-cn</language><lastBuildDate>Sat, 04 Apr 2026 20:06:43 GMT</lastBuildDate><pubDate>Sat, 04 Apr 2026 20:06:43 GMT</pubDate><ttl>60</ttl><item><title>题目：求1+2+…+n，要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句（A?B:C）</title><link>http://www.cppblog.com/zengwei0771/archive/2012/04/28/173014.html</link><dc:creator>阿伟</dc:creator><author>阿伟</author><pubDate>Sat, 28 Apr 2012 02:32:00 GMT</pubDate><guid>http://www.cppblog.com/zengwei0771/archive/2012/04/28/173014.html</guid><wfw:comment>http://www.cppblog.com/zengwei0771/comments/173014.html</wfw:comment><comments>http://www.cppblog.com/zengwei0771/archive/2012/04/28/173014.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zengwei0771/comments/commentRss/173014.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zengwei0771/services/trackbacks/173014.html</trackback:ping><description><![CDATA[这里是详细的四种解法 <a href="http://anwj336.blog.163.com/blog/static/89415209201010294122283/">http://anwj336.blog.163.com/blog/static/89415209201010294122283/</a><br /><br />但是我认为还有一种更简便的方法：使用&amp;&amp;运算符。<br />代码如下
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">1</span><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;nFactorial(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;n)<br /></span><span style="color: #008080">2</span><span style="color: #000000"><img id="Codehighlighter1_22_95_Open_Image" onclick="this.style.display='none'; Codehighlighter1_22_95_Open_Text.style.display='none'; Codehighlighter1_22_95_Closed_Image.style.display='inline'; Codehighlighter1_22_95_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_22_95_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_22_95_Closed_Text.style.display='none'; Codehighlighter1_22_95_Open_Image.style.display='inline'; Codehighlighter1_22_95_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_22_95_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_22_95_Open_Text"><span style="color: #000000">{<br /></span><span style="color: #008080">3</span><span style="color: #000000"><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;num&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br /></span><span style="color: #008080">4</span><span style="color: #000000"><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;(n&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(num&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;n&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;nFactorial(n&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">));<br /></span><span style="color: #008080">5</span><span style="color: #000000"><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" /><br /></span><span style="color: #008080">6</span><span style="color: #000000"><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;num;<br /></span><span style="color: #008080">7</span><span style="color: #000000"><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span></div><br />在第四句，如果n&lt;=0了，就不会去判断&amp;&amp;后面的语句了，也就不会继续递归下去了。<img src ="http://www.cppblog.com/zengwei0771/aggbug/173014.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zengwei0771/" target="_blank">阿伟</a> 2012-04-28 10:32 <a href="http://www.cppblog.com/zengwei0771/archive/2012/04/28/173014.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>scanf读取屏幕一行的问题</title><link>http://www.cppblog.com/zengwei0771/archive/2012/04/27/172951.html</link><dc:creator>阿伟</dc:creator><author>阿伟</author><pubDate>Fri, 27 Apr 2012 11:16:00 GMT</pubDate><guid>http://www.cppblog.com/zengwei0771/archive/2012/04/27/172951.html</guid><wfw:comment>http://www.cppblog.com/zengwei0771/comments/172951.html</wfw:comment><comments>http://www.cppblog.com/zengwei0771/archive/2012/04/27/172951.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zengwei0771/comments/commentRss/172951.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zengwei0771/services/trackbacks/172951.html</trackback:ping><description><![CDATA[<h1><span style="font-size: 12pt">用scanf获取一行字符串包括空格的以及C语言函数&nbsp;&nbsp; 的原帖在<a href="http://www.rupeng.com/forum/thread-3196-1-1.html">http://www.rupeng.com/forum/thread-3196-1-1.html</a><br /><br />其内容为<br />
<p>#include&lt;stdio.h&gt;<br />int main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char a[777];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scanf("%[^\n]",&amp;a);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("%s",a);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br />}</p>
<p>说明：<br />在scanf函数中,可以使用　%c来读取一个字符,使用%s读取一个字符串，但是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此只能读取一个单词,而不是整行字符串，因此一般使用fgets来读取一个字符串。其实scanf函数也可完成这样的功能,而且还更强大。这里主要介绍一个参数，％[　],这个参数的意义是读入一个字符集合。[　]是个集合的标志,因此%[　]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是"^",　这说明读取不在"^"　后面集合的字符,既遇到"^"　后面集合的字符便停止.注意此时读入的字符串是可以含有空格的。<br /></p>在这里主要是想说明一点：<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果要循环的从屏幕上读取一行的话，就要在读取一行后，在用%c读取一个字符，将输入缓冲区中的换行符给读出来。否则的话，在下一次读取一行的时候，第一个就遇到'\n'，匹配不成功就直接返回了。<br /></span><span style="font-size: 10pt"><br /></span></h1><img src ="http://www.cppblog.com/zengwei0771/aggbug/172951.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zengwei0771/" target="_blank">阿伟</a> 2012-04-27 19:16 <a href="http://www.cppblog.com/zengwei0771/archive/2012/04/27/172951.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>