<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[良师益友]]></title>
<link>http://www.foru365.com/</link>
<description><![CDATA[创造机会的人是勇者；等待机会的人是愚者]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[your@email.com(YourName)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>良师益友</title>
	<url>http://www.foru365.com/images/logos.gif</url>
	<link>http://www.foru365.com/</link>
	<description>良师益友</description>
</image>

			<item>
			<link>http://www.foru365.com/article.asp?id=17</link>
			<title><![CDATA[2C强化阶段-全部答案]]></title>
			<author>your@email.com(黄伟)</author>
			<category><![CDATA[等级考试]]></category>
			<pubDate>Wed,10 Feb 2010 12:11:58 +0800</pubDate>
			<guid>http://www.foru365.com/default.asp?id=17</guid>
		<description><![CDATA[<p><a target="_blank" href="http://www.foru365.com/down/2C强化答案.rar">下载</a></p>]]></description>
		</item>
		
			<item>
			<link>http://www.foru365.com/article.asp?id=16</link>
			<title><![CDATA[强化阶段的编程题分类]]></title>
			<author>your@email.com(黄伟)</author>
			<category><![CDATA[等级考试]]></category>
			<pubDate>Mon,04 Jan 2010 10:53:23 +0800</pubDate>
			<guid>http://www.foru365.com/default.asp?id=16</guid>
		<description><![CDATA[<p>&nbsp;</p>
<div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"><span>1.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>两个两位数合并成一个四位数（8）</div>
<div style="text-indent: 21pt">21，29，35，40，50，60，78，89</div>
<div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"><span>2.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>累加和（10）</div>
<div style="text-indent: 21pt">7，38，49，51，52，85，90，92，94，95</div>
<div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"><span>3.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>穷举搜索（6）</div>
<div style="text-indent: 21pt">27，30，48，55，61，71</div>
<div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"><span>4.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>素数判断（4）</div>
<div style="text-indent: 21pt">6，47，62，75</div>
<div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"><span>5.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>一维数组（7）</div>
<div style="text-indent: 21pt">5，8，14，34，42，53，58，72</div>
<div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"><span>6.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>字符串（22）</div>
<div style="margin: 0cm 0cm 0pt 21pt">2，4，9，13，22，28，46，54，59，64，66，67，68，69，81，82，83，84，87，88，91，100</div>
<div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"><span>7.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>前导*、后导*、中间*（9）</div>
<div style="text-indent: 21pt">3，32，36，41，44，45，57，86，98</div>
<div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"><span>8.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>二维数组（12）</div>
<div style="text-indent: 21pt">10，12，16，20，24，25，26，37，63，73，80，96</div>
<div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"><span>9.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>结构体数组（9）</div>
<div style="text-indent: 21pt">1，18，23，33，39，43，74，76，77</div>
<div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"><span>10.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </span></span>数学问题（6）</div>
<div style="text-indent: 21pt">11，15，19，56，93，99</div>
<div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"><span>11.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </span></span>多个字符串（2）</div>
<div style="text-indent: 21pt">17，79</div>
<div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"><span>12.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </span></span>链表问题（2）</div>
<div style="text-indent: 21pt">31，97</div>
<div style="margin: 0cm 0cm 0pt 21pt; text-indent: -21pt"><span>13.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </span></span>排序（2）</div>
<div style="text-indent: 21pt">65，70</div>]]></description>
		</item>
		
			<item>
			<link>http://www.foru365.com/article.asp?id=15</link>
			<title><![CDATA[第三单元 02-字符串]]></title>
			<author>your@email.com(黄伟)</author>
			<category><![CDATA[课堂笔记]]></category>
			<pubDate>Sat,05 Dec 2009 17:22:35 +0800</pubDate>
			<guid>http://www.foru365.com/default.asp?id=15</guid>
		<description><![CDATA[<p>第三单元 02-字符串<br />
1.字符数组的定义<br />
2.字符数组的输入和输出<br />
3.字符串的常见处理</p>
<p>例题1：给定两个字符串char s[200],和char t[200],将t中的内容连接到s的尾部形成新串<br />
例题2：给定一个字符串char s[200],由字母字符组成,将大写字符改成小写，小写改成大写。<br />
例题3：给定一个字符串char s[200],将其中字母字符改成下一个字符a-&gt;b,b-&gt;c...z-&gt;a大写仍大写，小写仍小写，其他字符不变<br />
例题4：给定一个字符串char s[200],将其逆置后输出<br />
例题5：给定一个字符串char s[200],char t[200],将s中ASCII值为偶且下标为偶的字符存入t中形成新串并输出<br />
例题6：给定一个字符串char s[200],由字母和星号组成<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.1删除前导星号<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.2删除后导星号<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.3删除中间星号<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.4使前导星号个数不多于n个<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.5使后导星号个数不多于n个</p>
<p><strong>例题1：给定两个字符串char s[200],和char t[200],将t中的内容连接到s的尾部形成新串</strong><br />
#include &lt;stdio.h&gt;<br />
#include &lt;string.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char s[200]=&quot;chinese&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char t[200]=&quot;kongfu&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,c;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c=strlen(s);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;=strlen(t);i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s[c++]=t[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; puts(s);<br />
}</p>
<p><strong>例题2：给定一个字符串char s[200],由字母字符组成,将大写字符改成小写，小写改成大写。</strong><br />
#include &lt;stdio.h&gt;<br />
#include &lt;string.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char s[200]=&quot;aBCdefGhiJ&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;s[i]!='\0';i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(s[i]&gt;='a'&amp;&amp;s[i]&lt;='z')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s[i]-=32;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s[i]+=32;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; puts(s);<br />
}</p>
<p><strong>例题3：给定一个字符串char s[200],将其中字母字符改成下一个字符a-&gt;b,b-&gt;c...z-&gt;a大写仍大写，小写仍小写，其他字符不变<br />
</strong>#include &lt;stdio.h&gt;<br />
#include &lt;string.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char s[200]=&quot;Mn.123xyz&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;s[i];i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(s[i]&gt;='a'&amp;&amp;s[i]&lt;='y'||s[i]&gt;='A'&amp;&amp;s[i]&lt;='Y')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s[i]+=1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(s[i]=='z'||s[i]=='Z')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s[i]-=25;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; puts(s);<br />
}<br />
<strong>例题4：给定一个字符串char s[200],将其逆置后输出</strong><br />
#include &lt;stdio.h&gt;<br />
#include &lt;string.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char s[200]=&quot;Mn.123xyz&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,j;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char t;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j=strlen(s)-1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(i&lt;j)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t=s[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s[i]=s[j];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s[j]=t;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i++;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j--;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; puts(s);<br />
}<br />
<strong>例题5：给定一个字符串char s[200],char t[200],将s中ASCII值为偶且下标为偶的字符存入t中形成新串并输出<br />
</strong>#include &lt;stdio.h&gt;<br />
#include &lt;string.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char s[200]=&quot;Mn.123xyz&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,c;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;s[i];i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(s[i]%2==0&amp;&amp;i%2==0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t[c++]=s[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t[c]='\0';</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; puts(s);<br />
}</p>
<p><strong>例题6：给定一个字符串char s[200],由字母和星号组成<br />
删除后导星号</strong><br />
#include &lt;stdio.h&gt;<br />
#include &lt;string.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char s[200]=&quot;******ab**c**d***e**fg*********&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int j;</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j=strlen(s)-1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(s[j]=='*')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j--;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s[j+1]=0;</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; puts(s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
}</p>
<p><strong>例题6：给定一个字符串char s[200],由字母和星号组成<br />
删除中间星号</strong><br />
#include &lt;stdio.h&gt;<br />
#include &lt;string.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char s[200]=&quot;******ab**c**d***e**fg*********&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,j,k,c;</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(s[i]=='*')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i++;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j=strlen(s)-1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(s[j]=='*')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j--;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(k=0;s[k];k++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if( !(k&gt;=i&amp;&amp;kk&lt;=j&amp;&amp;s[k]=='*') )<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s[c++]=s[k];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s[c]=0;</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; puts(s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
}</p>
<p><strong>例题6：给定一个字符串char s[200],由字母和星号组成<br />
使后导星号不多余n个</strong><br />
#include &lt;stdio.h&gt;<br />
#include &lt;string.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char s[200]=&quot;******ab**c**d***e**fg*********&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int j,c,n;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scanf(&quot;%d&quot;,&amp;n)</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j=strlen(s)-1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(s[j]=='*')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j--;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c++;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(c&gt;n)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s[j+n+1]=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; puts(s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
}</p>
<p><br />
<strong>例题6：给定一个字符串char s[200],由字母和星号组成<br />
使前导星号不多余n个</strong><br />
#include &lt;stdio.h&gt;<br />
#include &lt;string.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char s[200]=&quot;******ab**c**d***e**fg*********&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,k,c,n;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scanf(&quot;%d&quot;,&amp;n)</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(s[i]=='*')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i++;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(i&gt;n)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(k=i-n;k&lt;=strlen(s);k++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s[c++]=s[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; puts(s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
}<br />
&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.foru365.com/article.asp?id=14</link>
			<title><![CDATA[第3单元 03-二维数组]]></title>
			<author>your@email.com(黄伟)</author>
			<category><![CDATA[课堂笔记]]></category>
			<pubDate>Sat,05 Dec 2009 16:14:35 +0800</pubDate>
			<guid>http://www.foru365.com/default.asp?id=14</guid>
		<description><![CDATA[<p><strong>二维数组中需要掌握的内容<br />
1.二维数组的定义<br />
2.二维数组的输入和输出<br />
3.二维数组中数据进行处理的常见算法（遍历范围的控制，两种结构，两种特殊操作）</strong></p>
<p>例题1：给定一个二维数组int a[5][6];求二维数组的累加和<br />
例题2：给定一个二维数组int a[5][6];求其最大值<br />
例题3：给定一个二维数组int a[5][5];将其下三角元素清成0<br />
例题4：给定一个二维数组int a[5][5];将其上三角元素乘以2<br />
例题5：给定一个二维数组int a[5][5];输出其对角线上元素的值<br />
例题6：给定一个二维数组int a[5][5];输出其副对角线上元素的值<br />
例题7：给定一个二维数组int a[5][6];和int b[5];分别求出a中各行的累加和并存入b中<br />
例题8：给定一个二维数组int a[5][6];和int c[6];分别求出a中各列的最大值并存入c中<br />
例题9：给定一个二维数组int a[5][6];以行为单位进行逆置并输出<br />
例题10：给定一个二维数组int a[5][6];以列为单位进行逆置并输出<br />
例题11：给定一个二维数组int a[5][5];将其转置后输出<br />
例题12：给定一个二维数组int a[5][5];和int b[5][5];将A+A'-&gt;B</p>
<p><strong>例题1：给定一个二维数组int a[5][6];求二维数组的累加和<br />
</strong>#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a[5][6]={<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {3,12,6,7,1,3},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {6,14,3,5,6,3},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {9,55,6,21,2,8},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {12,3,21,41,1,12},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {14,2,3,4,6,34}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,j,s;</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;5;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0;j&lt;6;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s+=a[i][j];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;SUM=%d&quot;,s);<br />
}</p>
<p><strong>例题2：给定一个二维数组int a[5][6];求其最大值</strong><br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a[5][6]={<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {3,12,6,7,1,3},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {6,14,3,5,6,3},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {9,55,6,21,2,8},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {12,3,21,41,1,12},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {14,2,3,4,6,34}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,j,max;</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max=a[0][0];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;5;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0;j&lt;6;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(a[i][j]&gt;max)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max=a[i][j];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;MAX=%d&quot;,max);<br />
}</p>
<p><strong>例题3：给定一个二维数组int a[5][5];将其下三角元素清成0<br />
</strong>#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a[5][5]={<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {3,12,6,7,4},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {6,14,3,5,6},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {9,55,6,21,2},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {12,3,21,41,1},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {14,2,3,4,6}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,j;</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;5;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0;j&lt;=i;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[i][j]=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;5;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0;j&lt;5;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%3d&quot;,a[i][j]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;\n&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p><strong>例题4：给定一个二维数组int a[5][5];将其上三角元素乘以2</strong><br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a[5][5]={<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {3,12,6,7,4},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {6,14,3,5,6},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {9,55,6,21,2},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {12,3,21,41,1},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {14,2,3,4,6}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,j;</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;5;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=i;j&lt;5;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[i][j]*=2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;5;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0;j&lt;5;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%3d&quot;,a[i][j]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;\n&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p><strong>例题5：给定一个二维数组int a[5][5];输出其对角线上元素的值</strong><br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a[5][5]={<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {3,12,6,7,4},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {6,14,3,5,6},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {9,55,6,21,2},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {12,3,21,41,1},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {14,2,3,4,6}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i;</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;5;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%3d&quot;,a[i][i]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p><strong>例题6：给定一个二维数组int a[5][5];输出其对副角线上元素的值</strong><br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a[5][5]={<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {3,12,6,7,4},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {6,14,3,5,6},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {9,55,6,21,2},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {12,3,21,41,1},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {14,2,3,4,6}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i;</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;5;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%3d&quot;,a[i][5-i-1]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p><strong>例题7：给定一个二维数组int a[5][6];和一维数组int b[5];分别求出二维数组每行的累加和并存入数组int b[5]中<br />
</strong>#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a[5][6]={<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {3,12,6,7,4,8},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {6,14,3,5,6,9},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {9,55,6,21,2,23},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {12,3,21,41,1,67},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {14,2,3,4,6,56}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int b[5];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,j,s;</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;5;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0;j&lt;6;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s+=a[i][j];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b[i]=s;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;5;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%3d&quot;,b[i]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p><strong>例题8：给定一个二维数组int a[5][6];和一维数组int c[6];分别求出各列最大值并存入数组int c[6]中</strong><br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a[5][6]={<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {3,12,6,7,4,8},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {6,14,3,5,6,9},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {9,55,6,21,2,23},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {12,3,21,41,1,67},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {14,2,3,4,6,56}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int c[6];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,j,max;</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0;j&lt;6;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max=a[0][j];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;5;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(a[i][j]&gt;max)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max=a[i][j];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c[j]=max;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;6;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%3d&quot;,c[i]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p><strong>例题9：给定一个二维数组int a[5][6];以行为单位进行逆置并输出</strong><br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a[5][6]={<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {3,12,6,7,4,8},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {6,14,3,5,6,9},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {9,55,6,21,2,23},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {12,3,21,41,1,67},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {14,2,3,4,6,56}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int p,q,j,t;</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; q=4;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(p&lt;q)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0;j&lt;6;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t=a[p][j];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[p][j]=a[q][j];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[q][j]=t;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p++;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; q--;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;5;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0;j&lt;6;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%3d&quot;,a[i][j]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;\n&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p><strong>例题10：给定一个二维数组int a[5][5];以列为单位进行逆置并输出</strong><br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a[5][6]={<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {3,12,6,7,4,8},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {6,14,3,5,6,9},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {9,55,6,21,2,23},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {12,3,21,41,1,67},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {14,2,3,4,6,56}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int x,y,i,t;</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y=5;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(x&lt;y)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;5;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t=a[i][x];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[i][x]=a[i][y];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[i][y]=t;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x++;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y--;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;5;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0;j&lt;6;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%3d&quot;,a[i][j]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;\n&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p><strong>例题11：给定一个二维数组int a[5][5];将其转置后输出</strong><br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a[5][5]={<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {3,12,6,7,4},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {6,14,3,5,6},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {9,55,6,21,2},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {12,3,21,41,1},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {14,2,3,4,6}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,j,t;</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;5;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0;j&lt;i;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t=a[i][j];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[i][j]=a[j][i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[j][i]=t;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;5;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0;j&lt;5;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%3d&quot;,a[i][j]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;\n&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p><strong>例题12：给定一个二维数组int a[5][5];和int b[5][5];将A+A'-&gt;B</strong><br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a[5][5]={<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {3,12,6,7,4},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {6,14,3,5,6},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {9,55,6,21,2},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {12,3,21,41,1},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {14,2,3,4,6}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int b[5][5];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,j;</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;5;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0;j&lt;5;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b[i][j]=a[i][j]+a[j][i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;5;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0;j&lt;5;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%3d&quot;,b[i][j]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;\n&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}</p>]]></description>
		</item>
		
			<item>
			<link>http://www.foru365.com/article.asp?id=13</link>
			<title><![CDATA[第3单元-01一维数组]]></title>
			<author>your@email.com(黄伟)</author>
			<category><![CDATA[课堂笔记]]></category>
			<pubDate>Thu,03 Dec 2009 18:16:24 +0800</pubDate>
			<guid>http://www.foru365.com/default.asp?id=13</guid>
		<description><![CDATA[<p><strong>一维数组中需要掌握的题型有</strong><br />
1.一维数组求累加和及平均值<br />
2.一维数组中求最大值和最小值<br />
3.在一维数组中进行位置移动<br />
4.对一维数组进行逆置<br />
5.将运算结果保存到一维数组中<br />
<strong>例题1：给定一维数组int a[10]，求其累加和并输出。<br />
</strong>#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a[10]={3,15,2,19,64,52,73,94,11,6};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,s;<br />
&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;10;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s+=a[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;SUM=%d\n&quot;,s);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;AVER=%f&quot;,s/10.0);<br />
}</p>
<p><strong>例题2：给定一位数组int a[10]，求其最大值并输出<br />
</strong>#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a[10]={3,15,2,19,64,52,73,94,11,6};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,max;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max=a[0];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=1;i&lt;10;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(a[i]&gt;max)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max=a[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;MAX=%d&quot;,max);<br />
}</p>
<p><strong>例题3：给定一位数组int a[10]，求其最大值和最大值所在的下标并输出</strong><br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a[10]={3,15,2,19,64,52,73,94,11,6};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,max,k;<br />
&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max=a[0];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=1;i&lt;10;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(a[i]&gt;max)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max=a[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k=i;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;MAX=%d\n&quot;,max);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;MAXPOS=%d&quot;,k);<br />
}</p>
<p><strong>例题4：给定一位数组int a[10]，求其最大值和最大值所在的下标并输出</strong><br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a[10]={3,15,2,19,64,52,73,94,11,6};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,k;<br />
&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=1;i&lt;10;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(a[i]&gt;a[k])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k=i;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;MAX=%d\n&quot;,a[k]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;MAXPOS=%d&quot;,k);<br />
}</p>
<p><br />
<strong>例题5：给定一位数组int a[10]，将其逆置后输出</strong><br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a[10]={3,15,2,19,64,52,73,94,11,6};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,j,t;<br />
&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j=9;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(i&lt;j)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t=a[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[i]=a[j];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[j]=t;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i++;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j--;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;10;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%d &quot;,a[i]);<br />
}</p>
<p><strong>例题6：寻找200到400之间能被7或11整除的数存入数组int a[200]中并输出</strong><br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a[200];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i,c;<br />
&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=200;i&lt;=400;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(i%7==0||i%11==0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[c++]=i;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;c;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%d &quot;,a[i]);<br />
}</p>
<p><br />
&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.foru365.com/article.asp?id=12</link>
			<title><![CDATA[第2单元-03循环结构]]></title>
			<author>your@email.com(黄伟)</author>
			<category><![CDATA[课堂笔记]]></category>
			<pubDate>Wed,21 Oct 2009 11:01:53 +0800</pubDate>
			<guid>http://www.foru365.com/default.asp?id=12</guid>
		<description><![CDATA[<p><strong>1.循环基本结构</strong><br />
C语言中实现循环控制基本结构的语句主要有三种for,while和do-while语句，我们先看看这几种循环语句的基本执行过程<br />
for(初始;条件;控制)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; 循环体;<br />
}<br />
这条语句的执行过程如下图所示<br />
<img alt="" src="http://www.foru365.com/pic/U03-01.jpg" /><br />
那我们通过一个简单的例子看一下他的执行过程<br />
for(i=1;i&lt;=10;i++)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%4d&quot;,i);<br />
}<br />
我们可以看的出来，通过初始，条件和控制三个部分起到了控制循环体执行次数的作用，因此我们首先要掌握如何用各种语句进行循环体执行次数的控制。<br />
对于这个程序我们必须搞清楚两件事情：一是循环体部分被执行的次数，二是循环结束后变量i的值<br />
我们可以看出当i的值是1，2，&hellip;&hellip;10这十个数字时条件会成立，而成立则就会执行循环体部分，当i的值是11的时候，条件不成立则退出循环，所以循环体是当i的值为1到10的情况下执行了10次，而循环结束后变量i的值是11。</p>
<p>再来看while循环<br />
初始;<br />
while(条件)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; 循环体;<br />
&nbsp;&nbsp;&nbsp;&nbsp; 控制;<br />
}<br />
他的执行过程如下图所示：<br />
<img alt="" src="http://www.foru365.com/pic/U03-01.jpg" /><br />
还是刚才for循环语句的三个因素用到while循环语句中<br />
i=1;<br />
while(i&lt;=10)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%4d&quot;,i);<br />
&nbsp;&nbsp;&nbsp;&nbsp; i++;<br />
}<br />
和刚才情况一样，我们继续考虑循环体被执行的次数和循环结束后变量i的值，我们可以看到效果是完全一样的。</p>
<p>再看do-while循环</p>
<p>初始;<br />
do<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; 循环体;<br />
&nbsp;&nbsp;&nbsp;&nbsp; 控制;<br />
}while(条件);<br />
他的执行过程如下图所示：<br />
<img alt="" src="http://www.foru365.com/pic/U03-02.jpg" /><br />
还是刚才for循环语句的三个因素用到do-while循环语句中<br />
i=1;<br />
do<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%4d&quot;,i);<br />
&nbsp;&nbsp;&nbsp;&nbsp; i++;<br />
}while(i&lt;=10);<br />
和刚才情况一样，我们继续考虑循环体被执行的次数和循环结束后变量i的值，我们可以看到效果是完全一样的。循环体依然是在变量i从1到10执行到10次，循环结束后变量i的值是11。<br />
我们可以看到这三个循环语句都是&ldquo;条件成立时进行循环，条件不成立时退出循环&rdquo;，都是&ldquo;当型循环&rdquo;，&ldquo;直到型循环&rdquo;的执行过程是&ldquo;条件不成立时进行循环，直到条成立时退出循环&rdquo;，我们在这里不研究&ldquo;直到型循环&rdquo;。</p>
<p>do-while和while的区别之处是：当初始条件不成立时，do-while结构比while多执行一次。也就是说do-while循环结构无论如何都会让循环体部分至少执行1次，而初始条件不成立while结构不执行循环体。<br />
例如<br />
i=100;<br />
do<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%4d&quot;,i);<br />
&nbsp;&nbsp;&nbsp;&nbsp; i++;<br />
}while(i&lt;=10);<br />
循环体被执行1次，输出结果是100，循环结束后变量i的值是101<br />
<br />
i=100;<br />
while(i&lt;10)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%4d&quot;,i);<br />
&nbsp;&nbsp;&nbsp;&nbsp; i++;<br />
}<br />
循环体被执行0次，没有输出，循环结束后变量i的值是100</p>
<p>经过比较我们发现无论用什么语句来实现，最终都是为了控制一个次数，而次数控制主要是通过初始，条件，控制三个因素来完成，应什么语句实现并不是很重要，所以我们推荐大家使用for语句进行循环的控制。因为他把进行循环次数控制的各个部分写在一起，这样的话不容易&ldquo;丢项&rdquo;。</p>
<p>用for语句进行次数控制的时候有两个很容易出错的地方，一个是初始值从0开始和从1开始，另一个是条件中&lt;和&lt;=。常见的进行10次控制的语句如下两种形式<br />
for(i=1;i&lt;=10;i++)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; 循环体;<br />
}</p>
<p>变量i的值分别是1到10时执行循环体。<br />
for(i=0;i&lt;10;i++)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; 循环体;<br />
}<br />
变量i的值分别是0到9时执行循环体。</p>
<p>2.循环的应用<br />
循环结构是结构化程序设计中最重要的流程控制方式，很多问题的处理过程中都需要使用循环结构来实现，我们这里举三个循环结构能解决的常见问题：累加和，穷举搜索，素数判断来学习循环结构。我们学习这三种问题的时候都是要先给出解决这类问题的基本框架，然后举例说明，接下来再通过独立去做类似的练习题的方式来学习，也就是三个关键词：框架-&gt;例题-&gt;习题</p>
<p>累加和<br />
我们先从求1+2+3+4+&hellip;&hellip;100这个累加和求解的流程图来分析求解累加和的基本框架<br />
<img alt="" src="http://www.foru365.com/pic/u03-03.jpg" /><br />
我们可以看的出来，变量i起到了控制次数的作用，而次数控制对于进行累加和求解的问题而言比较简单，那就是根据累加和需要累加数据的个数来确定。而变量s的作用是求累加和，因此这个流程中剩下的比较难的地方就是要看每次s要累加上的表达式该怎样写才能正确的表示各个项。<br />
这就要去寻找累加和各项之间的一种规律，并将这种规律以表达式的方式写在s=s+表达式;语句中，<br />
这种规律有两种寻找的途径，一是看看各个需要累加的项的值是否和循环控制变量i有关，如果是这样的话则可以将表达式写成i的表达式来表示需要累加的各项的值，例如：1+2+3+4+&hellip;&hellip;+100这个题目中，每次需要累加的值就可以用i来表示。</p>
<p>&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.foru365.com/article.asp?id=11</link>
			<title><![CDATA[第2单元-02选择结构]]></title>
			<author>your@email.com(黄伟)</author>
			<category><![CDATA[课堂笔记]]></category>
			<pubDate>Wed,21 Oct 2009 10:54:59 +0800</pubDate>
			<guid>http://www.foru365.com/default.asp?id=11</guid>
		<description><![CDATA[<p>选择结构<br />
选择结构主要是一种通过判断，选择执行相应某些语句的一种流程控制结构，主要形式有两种形式，如下图所示<br />
if-else语句</p>
<p><img alt="" src="http://www.foru365.com/pic/if.jpg" /><br />
<br />
switch-case语句<br />
<img alt="" src="http://www.foru365.com/pic/switch.jpg" /><br />
<br />
第一种形式是通过判断条件是否成立，选择执行两方中的某一方。第二种形式是判断测试表达式的值和那个值匹配，执行相应的支上的语句。<br />
1.基本结构<br />
&nbsp; A;<br />
&nbsp; if(条件)<br />
&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 支语句1;<br />
&nbsp; }<br />
&nbsp; else<br />
&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 支语句2;<br />
&nbsp; }<br />
&nbsp; B;<br />
&nbsp; 在基本结构种我们特别强调两个方面<br />
&nbsp; a)承前启后的语句A和语句B，这两个语句并不是选择语句，而是选择语句之前后之后的两个语句，无论条件是否成立，这两条语句都会被执行到，这一点从流程控制图上能清楚的看到，我们在设计的时候一定要考虑一下那条语句执行后开始进行选择语句和选择执行某个分支语句之后用接着从那条语句开始执行。<br />
&nbsp; b)注意组合语句的使用，如果支语句中是多条语句，那么一定要用组合语句符{}把他们括起来才行，否则计算机只将其中第一条作为支上的部分，后面的会认为是主干上的部分，当然如果只是一条语句的话，用{}括起来可以，不用也可以。因此我建议大家无论支语句是一条还是多条，都先用一对大括号括起来，保证不会出错，而后发现只是将一条括起来的话，也可以去掉。这样就不容易出错了。<br />
例题：输入两个数字，找出较大的数字并输出<br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; int a,b,max;<br />
&nbsp;&nbsp;&nbsp;&nbsp; scanf(&quot;%d%d&quot;,&amp;a,&amp;b);<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; if(a&gt;b)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max=a;<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max=b;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;MAX=%d&quot;,max);<br />
}<br />
测试：<br />
输入12 67<br />
结果输出67</p>
<p>输入98 53<br />
结果输出98<br />
2.选择嵌套<br />
选择结构的基本语句，经过条件判断，只能是成立或不成立，选择执行其中一方，这样的结构似乎只是将流程分成了&ldquo;两路&rdquo;，而我们在设计的时候肯定会遇到根据当时的状况需要将流程分成&ldquo;多路&rdquo;的需要，那么利用if-else结构怎样才能实现呢？那么这就需要我们在选择语句的支语句中采用选择语句，也就是说在支上再分支，也可以说成是：分支语句的支语句1或支语句2本身又是一个选择结构语句。这样以来就能实现根据情况选择&ldquo;多路&rdquo;中的某一路来执行了。那么这个时候我们就要考虑这样的程序我们应该怎样进行设计呢。我们的办法是借助N-S流程图帮我们进行这种比较复杂的选择结构的设计。<br />
题意 N-S流程图 程序<br />
例题：输入三个数，找出最大的数字并输出<br />
找到三个数字中的最大值的N-S图如下：<br />
<img alt="" src="http://www.foru365.com/pic/U02-01.jpg" /></p>
<p>根据N-S图写出的程序如下<br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; int a,b,c,max;<br />
&nbsp;&nbsp;&nbsp;&nbsp; scanf(&quot;%d%d%d&quot;,&amp;a,&amp;b,&amp;c);<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; if(a&gt;b)<br />
&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(a&gt;c)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max=a;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max=c;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(b&gt;c)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max=b;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max=c;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;MAX=%d&quot;,max);<br />
}<br />
测试：<br />
输入3 4 5<br />
结果输出5<br />
输入50 40 30<br />
结果输出50<br />
输入400 500 300<br />
结果输出500</p>
<p><strong><span style="color: #ff0000">我们得到这样一个结论：从题意得到N-S图，主要是要特别注意分析，而从N-S图写出程序的过程则必须要按照从内向外的顺序一层一层写。</span></strong></p>
<p>例题：输入一个百分制的成绩，判断这个成绩的等级成绩并输出。<br />
根据N-S图写出的程序如下<br />
<br />
<img alt="" src="http://www.foru365.com/pic/U02-02.jpg" /><br />
根据N-S图写出的程序如下<br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; int x;<br />
&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;Please Input a number:\n&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp; scanf(&quot;%d&quot;,&amp;x);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; if(x&gt;=90)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;A&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(x&gt;=80)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;B&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(x&gt;=60)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;C&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;D&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}<br />
测试：<br />
分别输入95，82，77，31等数据进行测试，观察是否输出相应的结果</p>
<p>可以改变成<br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; int x;<br />
&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;Please Input a number:\n&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp; scanf(&quot;%d&quot;,&amp;x);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; if(x&gt;=90)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;A&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp; else if(x&gt;=80)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;B&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp; else if(x&gt;=60)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;C&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;D&quot;);<br />
}</p>
<p>测试：<br />
分别输入95，82，77，31等数据进行测试，观察是否输出相应的结果</p>
<p>另一种N-S图如下：<br />
<img alt="" src="http://www.foru365.com/pic/u02-03.jpg" /><br />
根据N-S图写出的程序如下：<br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; int x;<br />
&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;Please Input a number:\n&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp; scanf(&quot;%d&quot;,&amp;x);<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; if(x&gt;=60)<br />
&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(x&gt;=80)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(x&gt;=90)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;A&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;B&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;C&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;D&quot;);&nbsp;&nbsp; <br />
}<br />
测试：<br />
分别输入95，82，77，31等数据进行测试，观察是否输出相应的结果</p>
<p>可改变成<br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; int x;<br />
&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;Please Input a number:\n&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp; scanf(&quot;%d&quot;,&amp;x);<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; if(x&gt;=60)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(x&gt;=80)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(x&gt;=90)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;A&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;B&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;C&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;D&quot;);&nbsp;&nbsp; <br />
}</p>
<p>测试：<br />
分别输入95，82，77，31等数据进行测试，观察是否输出相应的结果</p>
<p>例题：输入一个年份，判断给定的年份是否是闰年。闰年的判断条件是能被4整除同时不能被100整除是闰年，能被400整除是闰年。<br />
判断一个年份是否是闰年的N-S流程图如下</p>
<p><img alt="" src="http://www.foru365.com/pic/u02-04.jpg" /><br />
程序如下<br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; int year;<br />
&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;Enter a num&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp; scanf(&quot;%d&quot;,&amp;year);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; if(year%400==0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;Yes&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(year%4==0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(year%100==0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;No&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;Yes&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;No&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p>程序中最主要的主题部分也可以用逻辑运算表示<br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; int year;<br />
&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;Enter a num&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp; scanf(&quot;%d&quot;,&amp;year);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; if((year%400==0)||(year%4==0&amp;&amp;year%100!=0))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;Yes&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;No&quot;);<br />
}</p>
<p>测试：<br />
输入2003&nbsp;输出No<br />
输入2004&nbsp;输出Yes<br />
输入2000&nbsp;输出Yes<br />
输入1900&nbsp;输出No</p>
<p>3.当else部分是空语句的时候<br />
&nbsp; 当else部分是空语句的时候else和空语句可以省略不写<br />
&nbsp; A;<br />
&nbsp; if(条件)<br />
&nbsp;&nbsp;&nbsp;&nbsp; 支语句1;<br />
&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp; ;<br />
&nbsp; B;</p>
<p>&nbsp; 可以写成<br />
&nbsp; A;<br />
&nbsp; if(条件)<br />
&nbsp;&nbsp;&nbsp;&nbsp; 支语句1;<br />
&nbsp; B;<br />
&nbsp; 他们的执行过程可以用下面的流程图来表示</p>
<p>&nbsp; 这个知识点经常是在我们阅读程序的时候出现，也就是如果给定了一个选择结构程序让我们阅读程序写结果，那我们发现else部分如果没有的话，必须意识到这表示else部分是空语句，而后面的语句是主干上的部分。<br />
例题：编写程序输入两个数字，将他们从小到大进行输出。<br />
分析主题部分的算法：如下图所示</p>
<p>因此程序如下<br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; int a,b,c,t;<br />
&nbsp;&nbsp;&nbsp;&nbsp; scanf(&quot;%d%d%d&quot;,&amp;a,&amp;b,&amp;c);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; if(a&gt;b)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t=a;&nbsp;&nbsp; a=b;&nbsp;&nbsp; b=t;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp; if(a&gt;c)<br />
&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t=a;&nbsp;&nbsp; a=c;&nbsp;&nbsp; c=t;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp; if(b&gt;c)<br />
&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t=b;&nbsp;&nbsp; b=c;&nbsp;&nbsp; c=t;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%d&nbsp;&nbsp; %d&nbsp;&nbsp; %d&quot;,a,b,c);<br />
}</p>
<p>4.考点总结<br />
编写选择嵌套程序，上机考试，办法是：题意&nbsp; N-S流程图&nbsp; 程序<br />
阅读选择嵌套程序写结果，笔试考试，办法是：一要搞清楚else和if的配套关系，二是要注意当else是空语句的这种现象<br />
因为编写选择嵌套结构程序的例子我们在前面已经写了很多了，这里不再举例了，这里就说说阅读选择嵌套程序的事情。<br />
首先要搞清楚else和if的配套关系：C规定，从内层开始，else总是和其向上最近的if配套，形成一条选择语句。<br />
那么如何根据这个配套原则来阅读程序呢？看下面两个例子<br />
例题<br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; int a=2,b=3,c=4,d=5;<br />
&nbsp;&nbsp;&nbsp;&nbsp; if(d&lt;b)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%d&quot;,d+1);<br />
&nbsp;&nbsp;&nbsp;&nbsp; else if(a&lt;c) printf(&quot;%d&quot;,d+2);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else printf(&quot;%d&quot;,d+3);<br />
}</p>
<p>输出7<br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp; int a=2,b=3,c=4,d=5;<br />
&nbsp;&nbsp; if(b&gt;a)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(c&gt;d)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%d&quot;,d+10);<br />
&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%d&quot;,d+20);<br />
}<br />
输出25</p>]]></description>
		</item>
		
			<item>
			<link>http://www.foru365.com/article.asp?id=10</link>
			<title><![CDATA[第2单元-01顺序结构]]></title>
			<author>your@email.com(黄伟)</author>
			<category><![CDATA[课堂笔记]]></category>
			<pubDate>Wed,21 Oct 2009 10:53:22 +0800</pubDate>
			<guid>http://www.foru365.com/default.asp?id=10</guid>
		<description><![CDATA[<p>流程控制这个章节开始我们就要将语句有效的组合在一起形成&ldquo;有序的命令集合&rdquo;，而这其中就设计多条语句之间的关系，也就是程序中的执行流程的控制问题。结构化程序设计的基本流程控制方式有三种：顺序结构、选择结构、循环结构。用流程图来描述如下<br />
<img height="161" alt="" width="150" src="http://www.foru365.com/pic/S1.jpg" /></p>
<p><img height="161" alt="" width="150" src="http://www.foru365.com/pic/S2.jpg" /></p>
<p><img height="161" alt="" width="150" src="http://www.foru365.com/pic/S3.jpg" /></p>
<p>顺序结构是程序中最大量存在而又最简单的一种，我们需要从一下三个方面来掌握<br />
1.完成程序的框架<br />
2.上机调试程序的过程<br />
3.基本输入输出语句</p>
<p>1.完成程序框架<br />
#include &lt;stdio.h&gt;<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 读入数据<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 程序主体（处理数据）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 输出结果<br />
}<br />
这里有两层含义要传达给大家：首先是如果初学者在写程序的时候实在是不知道该写点什么东西了，那你可以按照这个框架的结构来写，比如开始的时候可以考虑将程序中需要进行处理的数据通过定义变量并赋值的方式存到内存里，而后考虑数据处理的算法问题，最后将结果进行输出，这个思路对于编写结构化程序来说非常重要。其次是说读入数据和输出结果这两个部分的学习很简单主要是将进行输入和输出的语法记住就可以了，没有太多的需要理解和灵活的地方，而数据处理中不光是要学会语法，更重要的是要学习和掌握各种数据处理的算法，而算法是一个灵活的问题，因此学习起来首先是要理解（主要在课堂上在老师的帮助下完成），然后是要在上机实践中通过反复练习记住他（主要在课后独立练习）。</p>
<p>2.上机调试程序的过程<br />
这里我们给出调试的理论知识，更详细的过程请参考<a target="_blank" href="http://192.168.1.200/Blog/article.asp?id=12">动画演示</a><br />
<img height="279" alt="" width="260" src="http://www.foru365.com/pic/Compile.jpg" /><br />
<br />
保存后会生成一个扩展名是.C的文件，我们称之为源程序文件<br />
编译后会生成一个扩展名是.OBJ的文件，我们称之为目标文件，这个文件并不能被执行<br />
连接后会生成一个扩展名是.EXE的文件，我们称之为是可执行程序</p>
<p>3.基本的输入输出语句<br />
C语言中的输入和输出主要是靠scanf函数和printf函数来完成，输入主要是在程序刚开始的时候来完成灵活的数据读入，而输出语句主要是用在程序的结束的部分用于结果的输出。这里的大部分知识大家可以通过看书来自学，我们在这里只是给出一些重点部分和容易出错部分的总结<br />
输出<br />
printf(&quot;输出格式&quot;,变量名列表);<br />
不带变量的输出<br />
printf(&quot;Hello World&quot;);<br />
带变量的输出<br />
int a=10,b=76;<br />
printf(&quot;%d&nbsp;&nbsp; %d&quot;,a,b);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 输出到屏幕上的结果是<br />
10&nbsp;&nbsp; 76</p>
<p>printf(&quot;a=%d\nb=%d&quot;,a,b);&nbsp;&nbsp;&nbsp;&nbsp; 输出到屏幕上的结果是<br />
a=10<br />
b=76</p>
<p>printf(&quot;%d+%d=%d&quot;,a,b,a+b); 输出到屏幕上的结果是<br />
10+76=86</p>
<p>输出格式中的格式控制符解释如下<br />
整型表达式： <br />
&nbsp;&nbsp;&nbsp; %d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;十进制整型<br />
&nbsp;&nbsp;&nbsp; %o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;八进制整型<br />
&nbsp;&nbsp;&nbsp; %x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;十六进制整型<br />
&nbsp;&nbsp;&nbsp; %ld&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;长整型<br />
&nbsp;&nbsp;&nbsp; %6d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不够6位用空格补齐6位，超过六位则原样输出<br />
因为一个整数在程序中允许以不同的进制进行输出，所以这里我们就需要学会简单的进制转化<br />
十进制&rarr;其他进制<br />
其他进制&rarr;十进制</p>
<p>实型表达式:<br />
&nbsp;&nbsp;&nbsp; %f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;单精度实型数据<br />
&nbsp;&nbsp;&nbsp; %lf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 双精度实型数据<br />
&nbsp;&nbsp;&nbsp; %5.2f&nbsp;&nbsp;&nbsp; 输出总宽度占5位，小数点后输出2位</p>
<p><br />
&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.foru365.com/article.asp?id=9</link>
			<title><![CDATA[第1单元-04运算中的注意事项]]></title>
			<author>your@email.com(黄伟)</author>
			<category><![CDATA[课堂笔记]]></category>
			<pubDate>Tue,29 Sep 2009 12:07:11 +0800</pubDate>
			<guid>http://www.foru365.com/default.asp?id=9</guid>
		<description><![CDATA[<p>这些在定义变量给其赋值，然后让这些数据进行运算过程中需要注意的各个问题在考试中就是各个考点，在开发过程中就是程序员经常犯的一些错误或是容易混淆的概念。因此是非常重要的部分。</p>
<p><strong>1.关于字符型数据参与算术运算</strong><br />
由于字符数据存放到计算机内存里时，实际存放的是该字符的ASCII值，也就是一个整数。因此字符是可以参与算术运算的，运算规则是用字符的ASCII值进行运算<br />
需要记住的一些字符的ASCII值<br />
&nbsp;&nbsp;&nbsp; '0'&nbsp;&nbsp;&nbsp;&nbsp; 48<br />
&nbsp;&nbsp;&nbsp; '1'&nbsp;&nbsp;&nbsp;&nbsp; 49<br />
&nbsp;&nbsp;&nbsp; '2'&nbsp;&nbsp;&nbsp;&nbsp; 50<br />
&nbsp;&nbsp;&nbsp; '3'&nbsp;&nbsp;&nbsp;&nbsp; 51<br />
&nbsp;&nbsp;&nbsp; '4'&nbsp;&nbsp;&nbsp;&nbsp; 52<br />
&nbsp;&nbsp;&nbsp; '5'&nbsp;&nbsp;&nbsp;&nbsp; 53<br />
&nbsp;&nbsp;&nbsp; '6'&nbsp;&nbsp;&nbsp;&nbsp; 54<br />
&nbsp;&nbsp;&nbsp; '7'&nbsp;&nbsp;&nbsp;&nbsp; 55<br />
&nbsp;&nbsp;&nbsp; '8'&nbsp;&nbsp;&nbsp;&nbsp; 56<br />
&nbsp;&nbsp;&nbsp; '9'&nbsp;&nbsp;&nbsp;&nbsp; 57</p>
<p>&nbsp;&nbsp;&nbsp; 'A'&nbsp;&nbsp;&nbsp;&nbsp; 65<br />
&nbsp;&nbsp;&nbsp; 'B'&nbsp;&nbsp;&nbsp;&nbsp; 66<br />
&nbsp;&nbsp;&nbsp; ......<br />
&nbsp;&nbsp;&nbsp; 'Z'&nbsp;&nbsp;&nbsp;&nbsp; 90</p>
<p>&nbsp;&nbsp;&nbsp; 'a'&nbsp;&nbsp;&nbsp;&nbsp; 97<br />
&nbsp;&nbsp;&nbsp; 'b'&nbsp;&nbsp;&nbsp;&nbsp; 98<br />
&nbsp;&nbsp;&nbsp; ......<br />
&nbsp;&nbsp;&nbsp; 'z'&nbsp;&nbsp;&nbsp;&nbsp; 112<br />
字符型数据常见的算术运算有<br />
+1&nbsp;&nbsp; -1&nbsp;可以得到该字符的下一个字符或是上一个字符。'a'+1的结果是'b','f'-1的结果是'e'<br />
+32&nbsp; -32&nbsp;作用给字母字符，可以得到切换大小写字母。&nbsp; 'G'+32的结果是'g','m'-32的结果是'M'<br />
-48&nbsp;&nbsp;作用给数字字符，可以得到数字字符相应的数值。'3'-48的结果是3，'8'-48的结果是8</p>
<p><strong>2.关于算数值与逻辑值的关系<br />
</strong>可以先想想下列表达式的结果<br />
&nbsp;&nbsp;&nbsp; int a=3,b=-7;<br />
&nbsp;&nbsp;&nbsp; a&amp;&amp;b<br />
&nbsp;&nbsp;&nbsp; a||b<br />
&nbsp;&nbsp;&nbsp; !a<br />
&nbsp;&nbsp;&nbsp; a+b<br />
&nbsp;&nbsp;&nbsp; 可能有人会解释说上面的表达式会有语法错误，理由是逻辑运算的双方必须是逻辑值参与，而a和b中的值并非是逻辑值（1或0）<br />
&nbsp;&nbsp;&nbsp; 其实在C语言中，上面的这些表达式是可以执行的<br />
&nbsp;&nbsp;&nbsp; C语言规定，当算数值非0（不是0）时其逻辑值就是成立1，当算数值是0的时候，逻辑值就是不成立0。因此<br />
&nbsp;&nbsp;&nbsp; a&amp;&amp;b&nbsp;1&amp;&amp;1&nbsp;结果是1<br />
&nbsp;&nbsp;&nbsp; a||b&nbsp;1||1&nbsp;结果是1<br />
&nbsp;&nbsp;&nbsp; !a&nbsp;&nbsp;!1&nbsp;结果是0&nbsp;不能解释成a是3，!a的结果是-3,原因是！是逻辑运算，必须是用逻辑值进行参与<br />
&nbsp;&nbsp;&nbsp; a+b&nbsp;&nbsp;3+(-7)&nbsp;结果是-4 不能解释成1+1结果得2，原因是+是算术运算，则是用算数值参与<br />
&nbsp;&nbsp;&nbsp; 这里可能有点晕，a和b有时候要当成3与-7进行运算，而有时候要当成1进行运算，这到底怎么确定呢？那当然是要看这个变量到底是参与逻辑运算还是算术运算来确定了。<br />
&nbsp;&nbsp;&nbsp; 这种规则可能的应用场合有两个：一个是我们上面看到的逻辑运算中，另一个是在条件中<br />
&nbsp;&nbsp;&nbsp; int a=3,b=-7;&nbsp;<br />
<span style="color: #ff0000">&nbsp;&nbsp;&nbsp; if<u><strong>(a&gt;b)<br />
</strong></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%d&quot;,a);<br />
&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%d&quot;,b);</span></p>
<p><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; if<strong><u>(a+b)<br />
</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%d&quot;,a+b);<br />
&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%d&quot;,a-b);</span><br />
&nbsp;&nbsp;&nbsp;<br />
<span style="color: #ff00ff">&nbsp;&nbsp;&nbsp; if<strong><u>(a==b)<br />
</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;yes&quot;);<br />
&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;no&quot;);</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #000000">&nbsp;&nbsp;&nbsp; if<strong><u>(a=b)<br />
</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;YES&quot;);<br />
&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;NO&quot;);<br />
&nbsp;&nbsp;&nbsp; 四个程序片段中的条件部分都从语法角度来说都是正确的。</span><br />
&nbsp;&nbsp;&nbsp; <span style="color: #000000">红色的条件是一个关系运算，这个结果当然很明显3&gt;-7是成立的，所以打印输出a的值3<br />
&nbsp;&nbsp;&nbsp; 蓝色的条件是一个算术表达式，计算结果得到-4，-4作为条件也是可以的，这个时候就要用到我们说的算数值与逻辑值之间的关系了，所以-4作为条件成立，输出-4<br />
&nbsp;&nbsp;&nbsp; 粉色的条件是一个关系表达式，由于3等于-7不成立，因此输出no<br />
&nbsp;&nbsp;&nbsp; 黑色的条件是一个赋值表达式，首先将b的值赋给a，（并不是判断a与b是否相等），然后赋值表达式的值-7作为条件判断是成立，输出YES<br />
这个例子告诉我们，写条件的时候=和==在C语言中是两个不同的运算符，一个是作赋值运算，而另一个是判断两方是否相等，相等得到1，不相等得到0，所以我们在使用的时候要非常小心，不要搞混了。</span></p>
<p><strong><span style="color: #000000">3.变量的命名规则</span></strong><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;变量标示符（也就是变量的名字）的规则有三条<br />
&nbsp;&nbsp;&nbsp;只能用字母或下划线开头（不能用数字开头）<br />
&nbsp;&nbsp;&nbsp;只能用字母、下划线、数字组成（不能用除此之外的任何其他字符例如：.&nbsp; ?&nbsp; &gt;&nbsp; -&nbsp; $ 等）<br />
&nbsp;&nbsp;&nbsp;不能使用关键字（C语言严格区分大小写，所有关键字是小写字母；函数名不是关键字）<br />
&nbsp;&nbsp;&nbsp;3Com&nbsp;不合法，数字开头<br />
&nbsp;&nbsp;&nbsp;line-4&nbsp;不合法，使用了中划线，也就是减号<br />
&nbsp;&nbsp;&nbsp;A.c&nbsp;&nbsp;不合法，使用了.<br />
&nbsp;&nbsp;&nbsp;main&nbsp;合法，函数名main并不是关键字<br />
&nbsp;&nbsp;&nbsp;For&nbsp;&nbsp;合法，用于循环控制的语句是for<br />
&nbsp;&nbsp;&nbsp;long&nbsp;不合法，关键字<br />
&nbsp;&nbsp;&nbsp;_12&nbsp;&nbsp;合法</span></p>
<p><strong><span style="color: #000000">4.常量的表示方法<br />
</span></strong><span style="color: #000000">各种不同类型的常量在表示的时候有多种形式<br />
<strong>整型常量<br />
</strong><u>可以加前缀用来标示不同进制的整数。</u>加前缀523,0523,0X5A分别表示十进制、八进制和十六进制整数但需要注意的是：组成各种进制数的数字范围是什么：十进制是0到9这是个数字组成，八进制则是由0到7这八个数字组成，十六进制数则由0到9以及A到F这十六个符号组成，也就是说八进制数中只能出</span><span style="color: #000000">现0到7而不能有8，9出现，而十六进制数中不但可以有0到9，还可以出现A到F。而这一点经常在考试中出现，让考生判断整型常量的正确与否，我们刚刚提到的范围和前缀符就成了考点<br />
&nbsp;&nbsp;&nbsp; 例如：<br />
&nbsp;&nbsp;&nbsp; 判断下列整型常量中哪些正确，哪些错误<br />
&nbsp;&nbsp;&nbsp; 0386&nbsp;错误，0开头表示是八进制数字，而八进制中不能有8<br />
&nbsp;&nbsp;&nbsp; 0xABF&nbsp;合法的十六进制数<br />
&nbsp;&nbsp;&nbsp; 0Xabd&nbsp;合法的十六进制数<br />
&nbsp;&nbsp;&nbsp; xABF&nbsp;不合法，整型常量中的十六进制必须以0X作前缀，不能用X作前缀<br />
&nbsp;&nbsp;&nbsp; -321&nbsp;合法<br />
&nbsp;&nbsp;&nbsp; +325&nbsp;&nbsp;&nbsp; &nbsp;合法，由于默认是正数，所以表示正数的时候可以省略+号<br />
<u>可以加后缀表示不同类型的整数。</u>加后缀12,12L<br />
&nbsp;&nbsp;&nbsp; 不加L表示是一个短整型整数，而加了L后缀则表示一个长整型数据。<br />
&nbsp;&nbsp;&nbsp; 在个别一些情况下会有一些小小的差异<br />
&nbsp;&nbsp;&nbsp; 比如：<br />
&nbsp;&nbsp;&nbsp; long x;<br />
&nbsp;&nbsp;&nbsp; x=5000*5000;<br />
在这个语句中能不能把25000000这个结果存入x中能，可能我们会因为考虑到x是长整型类型的变量可以足以存放这个结果，所以认定会正确执行，但是情况并不是我们想想的那样。原因是什么呢：是因</span><span style="color: #000000">为5000这个没有L后缀的整数计算机视作是短整型数据，而两个短整型数据运算的结果也必须是短整型，而这个结果已经超过了短整型可以表示的结果，因此会出问题。这里可能有同学搞不清楚为什么x是长</span><span style="color: #000000">整型而却没有得到25000000呢，那你可以想想这个问题double x;&nbsp; x=1/2;首先定义实型变量x，当然是一个可以存放实数的变量，第二步将1/2的结果存入x中，1和2都是整型类型数据，所以一定是先要得到</span><span style="color: #000000">整型类型的结果，然后给x赋值，不能应为是用实型变量来存储就要得到实型结果，运算的结果是什么类型只能参与运算双方的类型有关系。正确的将250000000存入x的语句应该是x=5000L*5000L;<br />
<strong>实型常量</strong><br />
普通表示法和科学计数法，普通表示法主要是通过小数点表示一个实数，例如：3.14，3.0，.5，5.这些都是合法的实数，但是在表示非常大或是非常小的实数的时候不是很方便，这时候需要使用科学计</span><span style="color: #000000">数法进行表示，科学计数法的格式是nEm的形式，表示n乘10的m次方这个数，有一个要求就是：E前必须有数字，E后必须是整数<br />
&nbsp;&nbsp;&nbsp; 2.9E3&nbsp;正确<br />
&nbsp;&nbsp;&nbsp; 2.5E+5&nbsp;正确<br />
&nbsp;&nbsp;&nbsp; E2&nbsp;&nbsp;不正确，E前没有数字，1E2是正确的表示<br />
&nbsp;&nbsp;&nbsp; 2.5E3.1&nbsp;不正确，E后不是整数<br />
&nbsp;&nbsp;&nbsp; 2.5E3%25&nbsp;不正确，实数不能参与%运算<br />
<strong>字符常量</strong><br />
字符常量有两种表示方法，普通表示法和转义字符表示法。绝大多数字符都可以用普通表示法进行表示，例如：'A','?','5'等等，用一对单引号包括起来，一对单引号里只能包括一个字符，不能出现多</span><span style="color: #000000">个字符，否则就成了语法错误。但是一些特殊的字符就不能用普通方法表示，首先就是单引号字符本身，这样以来就只能借助转义字符的形式来表示，转义字符的基本格式是'\转义内容'，所以单引号字符表示成'\'',而这样以来，反斜线字符也不能通过普通方法表示了,'\'这样的写法是语法错误，不表示任何字符常量，反斜线字符应该表示成'\\',双引号表示成'\&quot;',转义还可以通过字符的ASCII值表示一个字符常量，'\ddd','\Xhh',其中ddd表示一个八进制数字，hh表示一个十六进制数字，这里默认是八进制数字，因此八进制可以不同0开头，例如'\101'就表示ASCII值是101的那个字符，'\XAB'也是一个合法字符常量。<br />
&nbsp;&nbsp;&nbsp; 例题<br />
&nbsp;&nbsp;&nbsp; 下面字符常量中哪些是合法的哪些是非法的<br />
&nbsp;&nbsp;&nbsp; 'A'&nbsp;&nbsp;合法<br />
&nbsp;&nbsp;&nbsp; '\'&nbsp;&nbsp;非法<br />
&nbsp;&nbsp;&nbsp; '65'&nbsp;非法，一对单引号里只能引一个字符<br />
&nbsp;&nbsp;&nbsp; 65&nbsp;&nbsp;合法，相当于是'A',因为'A'存储和运算的时候就是其ASCII值<br />
&nbsp;&nbsp;&nbsp; '\0XAB'&nbsp;非法，这里不能用0X开头<br />
&nbsp;&nbsp;&nbsp; '\XAB'&nbsp;合法<br />
&nbsp;&nbsp;&nbsp; &quot;a&quot;&nbsp;&nbsp;非法，双引号引起来的叫字符串，我们后面会学习到</span></p>
<p><strong><span style="color: #000000">5.i++与++i的异同</span></strong><span style="color: #000000"><br />
<u>相同点：在执行后的结果是一样的，都使变量i的值自加1。<br />
不同点：执行中i++是先用后加，而++i是先加后用。<br />
</u>先用后加的意思是说i++这个表达式出现在运算式中的时候是先进行运算，而后让变量i的值自加1。先加后用的意思是说++i这个表达式出现在运算式中的时候是先让变量i的值自加1，然后再进行运算<br />
相同点举例int i=3;<br />
i++;<br />
printf(&quot;%d&quot;,i);</span></p>
<p><span style="color: #000000">int i=3;<br />
++i;<br />
printf(&quot;%d&quot;,i);<br />
这两个程序输出的结果都是4，因为i++这个表达式和++i这个表达式并没有参与任何运算，只是作为一条独立语句存在，所以没有差异，执行后变量i的值都变成4</span></p>
<p><span style="color: #000000">不同点举例<br />
int i=3,x;<br />
x=(i++)*2;<br />
printf(&quot;%d&nbsp;&nbsp; %d&quot;,i,x);<br />
结果是4&nbsp;&nbsp; 6</span></p>
<p><span style="color: #000000">int i=3;<br />
x=(++i)*2;<br />
printf(&quot;%d&nbsp;&nbsp; %d&quot;,i,x);<br />
结果是4&nbsp;&nbsp; 8<br />
这两个程序中，表达式i++和表达式++i在程序中参与了运算，所以就必须搞清楚是加前的数据参与运算还是加后的数据参与运算。这时就有了区别：i++由于是先用后加，因此i++表达式的值就是i的值，也就是(i++)*2意味着3*2进行运算，将6赋给x，执行结束后变量i的值就自加1变成4。而++i由于是先加后用，因此i++表达式的值就是i+1的值，也就是(++i)*2意味着4*2进行运算，将8赋给x，执行结束。<br />
所以如果是独立语句的话i++;和++i;没有什么区别，只有i++和++i表达式参与运算了会有差异<br />
我们在程序中尽可能不要出现类似于c=(i++)+(++i);或c=i+++j;等等这样的表达式，因为这样的表达式在不同的编译器中的解释可能不一样，造成程序阅读的困难。可以把它们分步来完成，以上的两个命令可以写成如下形式<br />
a=i++;<br />
b=++i;<br />
c=a+b;</span></p>
<p><span style="color: #000000">x=i++;<br />
c=x+j;</span></p>
<p><strong><span style="color: #000000">6.&amp;&amp;运算和||运算的规则<br />
</span></strong><span style="color: #000000"><u>A&amp;&amp;B运算中，若A的值不成立，则不执行B，结果不成立<br />
A||B运算中，若A的值成立，则不执行B，结果成立<br />
</u>这个现象也很好理解，因为A与B进行&amp;&amp;运算时，只有当A和B的值同时都成立的时候结果才能成立，有一方不成立则结果就不成立，若第一方不成立，则后面的部分算与不算已经不能影响结果了，所以就有了这样的规则。而||运算的规则也是一样，只要能提前得到结果的话，则后面的运算就不会发生。<br />
例题：<br />
int a=2,b=3,c=4,d=5,m=2,n=2,k;<br />
k=(m=a&gt;c)&amp;&amp;(n=b&lt;d);<br />
请问执行后变量k,m,n的值<br />
首先执行a&gt;c的结果赋值给m，也就是将0赋值给m，这个赋值表达式的值就是0，参与了&amp;&amp;运算，按照规则,这时候已经可以得到结果了，是0，因此不会执行后面的部分，也就是没有执行将b&lt;d的结果赋值给n因此n的值还应该是其原值，也就是2，所以结果是k是0，m是0，n是2</span></p>
<p><span style="color: #000000">int i=1,j=2,k;<br />
k=i--||j++;<br />
请问执行后变量k,i,j的值<br />
i---这个表达式参与||运算是先用i的值参与运算(等运算结束后变量i的值会自加1)，因此1是参与||运算的第一方，这样一来根据能提前得到结果，就不执行后面运算的原则，可以知道j++表达式并没有被使用，当然也不存在自加的运算，所以最后的结果是k是1，i是0，j是2</span></p>]]></description>
		</item>
		
			<item>
			<link>http://www.foru365.com/article.asp?id=8</link>
			<title><![CDATA[第1单元-03混合运算规则]]></title>
			<author>your@email.com(黄伟)</author>
			<category><![CDATA[课堂笔记]]></category>
			<pubDate>Tue,29 Sep 2009 12:05:53 +0800</pubDate>
			<guid>http://www.foru365.com/default.asp?id=8</guid>
		<description><![CDATA[<p>我们这里提到和混合有两方面的意思，一方面是说不同类型之间的混合运算，两一方面是说运算符之间的混合运算。不同类型之间的混合运算主要是要说一下得到的结果的类型，结果的类型是会影响到最终的计算结果的，而运算符之间的混合运算主要是说一下运算符优先级的问题，通俗说也就是要说一下&ldquo;先算谁，后算谁&rdquo;的问题，这个顺序当然会影响到结果了，比如说4+2*5的结果不能是4+2得到6然后6再乘5得30，而是用该先算2*5得10然后再加上4得14才对。</p>
<p><strong>1.类型混合运算中的结果类型是这样规定的<br />
</strong>同类型的运算结果一定是该类型<br />
不同类型之间是有一个&ldquo;靠拢原则&rdquo;int-&gt;long-&gt;double&lt;-float（简单点说就是整型和实型运算后的结果是实型）<br />
<br />
<span style="color: #ff0000"><strong>例题</strong></span><br />
10/4&nbsp;&nbsp;结果得2，因为10和4都是整型，所以结果一定也是整型<br />
10.0/4&nbsp;结果得2.5，因为10.0是实型，和整型运算后的结果是实型<br />
<br />
float r=6.2;表示圆的半径的值，求半圆的面积是多少<br />
1/2*3.14*r*r这个表达式是否能计算半圆的面积呢？结果是不能计算，原因是1/2的运算结果是整型，所以是0，然后乘以3.14后结果是0.0（实型的0），往后乘的结果仍然是0.0<br />
1.0/2*3.14*r*r把1改写成1.0这样就可以了，这个例子告诉我们程序中进行除法运算的时候，为了能得到实型的结果，经常要将1写成1.0</p>
<p><strong>2.运算符混合后的运算符优先级<br />
</strong>运算符优先级表如下<br />
&nbsp;</p>
<p>
<table cellspacing="0" cellpadding="0" width="239" border="1" style="width: 239px; height: 169px">
    <tbody>
        <tr>
            <td width="96" style="text-align: center">括号</td>
            <td width="137" style="text-align: center">()</td>
        </tr>
        <tr>
            <td width="96" style="text-align: center">单目</td>
            <td width="137" style="text-align: center">!</td>
        </tr>
        <tr>
            <td width="96" style="text-align: center">算术</td>
            <td width="137">
            <p style="text-align: center">*&nbsp; /&nbsp; %<br />
            +&nbsp; -</p>
            </td>
        </tr>
        <tr>
            <td width="96" style="text-align: center">关系</td>
            <td width="137" style="text-align: center">&gt;&nbsp; &gt;=&nbsp; &lt;&nbsp; &lt;=<br />
            ==&nbsp; !=</td>
        </tr>
        <tr>
            <td width="96" style="text-align: center">逻辑</td>
            <td width="137" style="text-align: center">&amp;&amp;<br />
            ||</td>
        </tr>
        <tr>
            <td width="96" style="text-align: center">赋值</td>
            <td width="137" style="text-align: center">=&nbsp; +=&nbsp; -=&nbsp; *=&nbsp; /=&nbsp; %=</td>
        </tr>
    </tbody>
</table>
</p>
<p><strong>我们先说说关于赋值运算的几个规则</strong><br />
a)赋值运算符的左边，只能是一个变量，不能是常量或表达式<br />
&nbsp;&nbsp;&nbsp;a=a+1;&nbsp; 这个是正确的语句，表示将a+1的值赋值给a<br />
&nbsp;&nbsp;&nbsp;c+d=a+b;试图将a+b的值赋给表达式c+d的做法是错误的<br />
&nbsp;&nbsp;&nbsp;92=a+b;试图将a+b的值赋给一个常量也是错误的<br />
b)赋值表达式的值就是所赋的值。也就是说：如果一个赋值表达式参与运算，应该是赋给左边变量的那个值参与运算<br />
&nbsp;&nbsp; int a=3,x;<br />
&nbsp;&nbsp; x=(a=7)*5;&nbsp;&nbsp;&nbsp; (a=7)这个赋值表达式参与了乘法运算，这个表达式的值应该是赋给a的值，也就是7将参与乘法运算，和变量a中原来的值应该没有关系了，所以执行后x中的值是35，而a中的值是7<br />
c)赋值运算符的&ldquo;右结合性&rdquo;（&ldquo;右结合性&rdquo;的意思是说赋值符号优先级一样的情况下是从右向左进行运算）<br />
&nbsp;&nbsp; 一般&ldquo;双目运算符&rdquo;的结合原则是&ldquo;左结核性&rdquo;（也就是是说赋值符号优先级一样的情况下是从左向右进行运算）<br />
&nbsp;&nbsp; 例如:&nbsp; 30/3*2 运算过程应该是30/3得到10，然后10再乘以2得20，而不能是先算3*2得6，然后30除以6得5，因为除法和乘法运算优先级一样，这时应该从左向右做运算（&ldquo;左结合性&rdquo;）<br />
&nbsp;&nbsp; 而赋值运算是&ldquo;右结合性&rdquo;<br />
&nbsp;&nbsp; int a=5,b=8;<br />
&nbsp;&nbsp; a=b=10;<br />
&nbsp;&nbsp; 执行中不能解释成让b的值赋给a，然后执行将10的值赋给b。而要解释成10赋给b，然后表达式（b=10）的值再赋给a，也就是要从右向左进行运算。因此执行后a和b的值都是10<br />
&nbsp;&nbsp; int a=2;<br />
&nbsp;&nbsp; a=a*=a+=4;<br />
应该这样分析这个表达式的执行过程，式子中有三个运算符，=、*=、+=都是赋值运算，优先级是一样的，因此我们应该按照&ldquo;右结合性&rdquo;也就是从右向左进行计算，首先执行a+=4，也就是a=a+4;把a+4的值赋给a这样一来a的值就变成了6，而a+=4这个赋值表达式的值也就是所赋的值，也是6，所以整个表达式变成a=a*=6;接着再执行a*=6，也就是a=a*6;把a乘以6的值赋给a这样一来a的值就变成了36，而a*=6这个赋值表达式的值就是所赋的值36，然后做最后一次赋值a=36，所以最终a变量里的值就是36</p>
<p><span style="color: #ff0000"><strong>例题：<br />
</strong></span>根据给定表达式的值写出其结果<br />
&nbsp;&nbsp; int a=2,b=3,c=4,d=5;<br />
&nbsp;&nbsp; a+d&lt;=b+c||a&lt;c&amp;&amp;!(d&gt;a)<br />
&nbsp;&nbsp; 这个表达式的计算过程中首先要计算优先级最高的（）和&ldquo;单目&rdquo;运算符！，d&gt;a的结果是1，而！1的结果是0，得到如下表达式<br />
&nbsp;&nbsp; a+d&lt;=b+c||a&lt;c&amp;&amp;0<br />
&nbsp;&nbsp; 到了都是&ldquo;双目&rdquo;运算符的时候就要找运算符优先级高的进行运算<br />
&nbsp;&nbsp; 找其中的算术运算符进行运算，也就是两个+运算，运算后得到如下表达式<br />
&nbsp;&nbsp; 7&lt;=7||a&lt;c&amp;&amp;0<br />
&nbsp;&nbsp; 找到其中的关系运算符进行运算，也就是&lt;=和&lt;运算，运算后得到如下表达式<br />
&nbsp;&nbsp; 1||1&amp;&amp;0<br />
&nbsp;&nbsp; 逻辑运算中&amp;&amp;运算的优先级高于||所以，首先执行&amp;&amp;运算，运算后得到如下表达式<br />
&nbsp;&nbsp; 1||0<br />
&nbsp;&nbsp; 结果得1<br />
<br />
根据数学表达式写出C语言表达式<br />
&nbsp;&nbsp; float a,b,c,d;<br />
&nbsp;&nbsp; a*b/2*c*d&nbsp;&nbsp;这个表达式并不能表示上述数学表达式的值，因为计算机执行时是从左向右依次执行<br />
&nbsp;&nbsp; a*b/2/c/d&nbsp;&nbsp;这个表达式可以表示上述数学表达式<br />
&nbsp;&nbsp; (1/2)*a*b/c/d&nbsp;这个表达式不能表示，原因是（1/2）的结果是0，而不是0.5。如果将1写成1.0则可以正确表示<br />
&nbsp;&nbsp; (a*b)/(2*c*d)&nbsp;这个表达式是可以的<br />
&nbsp;&nbsp; 结论：在将数学表达式写成C语言表达式的过程中要善于利用（）进行表示。</p>]]></description>
		</item>
		
</channel>
</rss>
