⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c_sample100.htm

📁 一百个精典的C语言程序代码,有需要的可以下.
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<table width="72%" border="0" bgcolor="#FFFFFF">
<tr>
<td  height="17" align="center" width="3%" class="gray">1</td>
<td class="p14" align=left >
<a name="684199449"></a>

<font color=#0000cc>100个经典C语言程序,大家可以进来看看。</font>

</td></tr>
<tr><td></td>
<td class=f14 align=left width="97%" >
<table  style="TABLE-LAYOUT: fixed; word-wrap:break-word" width="87%" border="0" cellspacing="0" cellpadding="0"><tr><td class="gray14"> 
    经典c程序100例==1--10
<br>【程序1】
<br>题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
<br>1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去
<br>      掉不满足条件的排列。&nbsp;
<br>2.程序源代码:
<br>main()
<br>{
<br>int&nbsp;i,j,k;
<br>printf(&quot;\n&quot;);
<br>for(i=1;i&lt;5;i++)    /*以下为三重循环*/
<br> for(j=1;j&lt;5;j++) 
<br>  for&nbsp;(k=1;k&lt;5;k++)
<br>   {
<br>    if&nbsp;(i!=k&&i!=j&&j!=k)&nbsp;   /*确保i、j、k三位互不相同*/
<br>    printf(&quot;%d,%d,%d\n&quot;,i,j,k);
<br>   }
<br>}
<br>==============================================================
<br>【程序2】
<br>题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高
<br>   于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提
<br>   成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于
<br>   40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于
<br>   100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
<br>1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。      
<br>2.程序源代码:
<br>main()
<br>{
<br>long&nbsp;int&nbsp;i;
<br>int&nbsp;bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
<br>scanf(&quot;%ld&quot;,&i);
<br>bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
<br>bonus4=bonus2+200000*0.5;
<br>bonus6=bonus4+200000*0.3;
<br>bonus10=bonus6+400000*0.15;
<br> if(i&lt;=100000)
<br>  bonus=i*0.1;
<br> else&nbsp;if(i&lt;=200000)
<br>     bonus=bonus1+(i-100000)*0.075;
<br>    else&nbsp;if(i&lt;=400000)
<br>        bonus=bonus2+(i-200000)*0.05;
<br>       else&nbsp;if(i&lt;=600000)
<br>           bonus=bonus4+(i-400000)*0.03;
<br>          else&nbsp;if(i&lt;=1000000)
<br>              bonus=bonus6+(i-600000)*0.015;
<br>             else
<br>              bonus=bonus10+(i-1000000)*0.01;
<br>printf(&quot;bonus=%d&quot;,bonus);
<br>}&nbsp;
<br>
<br>==============================================================
<br>【程序3】
<br>题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
<br>1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后
<br>      的结果满足如下条件,即是结果。请看具体分析:
<br>2.程序源代码:
<br>#include&nbsp;&quot;math.h&quot;
<br>main()
<br>{
<br>long&nbsp;int&nbsp;i,x,y,z;
<br>for&nbsp;(i=1;i&lt;100000;i++)
<br> {&nbsp;x=sqrt(i+100);&nbsp;  /*x为加上100后开方后的结果*/
<br>  y=sqrt(i+268);&nbsp;  /*y为再加上168后开方后的结果*/
<br>   if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
<br>    printf(&quot;\n%ld\n&quot;,i);
<br> }
<br>}
<br>==============================================================
<br>【程序4】
<br>题目:输入某年某月某日,判断这一天是这一年的第几天?
<br>1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
<br>      情况,闰年且输入月份大于3时需考虑多加一天。
<br>2.程序源代码:
<br>main()
<br>{
<br>int&nbsp;day,month,year,sum,leap;
<br>printf(&quot;\nplease&nbsp;input&nbsp;year,month,day\n&quot;);
<br>scanf(&quot;%d,%d,%d&quot;,&year,&month,&day);
<br>switch(month)/*先计算某月以前月份的总天数*/
<br>{
<br> case&nbsp;1:sum=0;break;
<br> case&nbsp;2:sum=31;break;
<br> case&nbsp;3:sum=59;break;
<br> case&nbsp;4:sum=90;break;
<br> case&nbsp;5:sum=120;break;
<br> case&nbsp;6:sum=151;break;
<br> case&nbsp;7:sum=181;break;
<br>
</td></tr></table>
</td></tr>
<tr><td height="17"></td><td></td></tr>
<tr><td height="17"></td>
<td align=left >作者: <a href="http://passport.baidu.com/?detail&aid=6&default_tab=1&un=tao2320"> tao2320</a>&nbsp;



<font class="gray12"> 2006-3-15 23:35 </font> 
 <a href="#sub" class=t onclick="ResetReplyTitle('1','100个经典C语言程序,大家可以进来看看。');">回复此发言</a> &nbsp; 

</td></tr>

<tr><td></td><td><hr align=left width="87%" size=1 ></td>
</tr></table><a name="#2"></a>
<table width="72%" border="0" bgcolor="#FFFFFF">
<tr>
<td  height="17" align="center" width="3%" class="gray">2</td>
<td class="p14" align=left >
<a name="684199450"></a>

<font color=#0000cc>100个经典C语言程序,大家可以进来看看。</font>

</td></tr>
<tr><td></td>
<td class=f14 align=left width="97%" >
<table  style="TABLE-LAYOUT: fixed; word-wrap:break-word" width="87%" border="0" cellspacing="0" cellpadding="0"><tr><td class="gray14"> 
 case&nbsp;8:sum=212;break;
<br> case&nbsp;9:sum=243;break;
<br> case&nbsp;10:sum=273;break;
<br> case&nbsp;11:sum=304;break;
<br> case&nbsp;12:sum=334;break;
<br> default:printf(&quot;data&nbsp;error&quot;);break;
<br>}
<br>sum=sum+day;&nbsp; /*再加上某天的天数*/
<br> if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
<br>  leap=1;
<br> else
<br>  leap=0;
<br>if(leap==1&&month&gt;2)/*如果是闰年且月份大于2,总天数应该加一天*/
<br>sum++;
<br>printf(&quot;It&nbsp;is&nbsp;the&nbsp;%dth&nbsp;day.&quot;,sum);}
<br>==============================================================
<br>【程序5】
<br>题目:输入三个整数x,y,z,请把这三个数由小到大输出。
<br>1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x&gt;y则将x与y的值进行交换,
<br>      然后再用x与z进行比较,如果x&gt;z则将x与z的值进行交换,这样能使x最小。
<br>2.程序源代码:
<br>main()
<br>{
<br>int&nbsp;x,y,z,t;
<br>scanf(&quot;%d%d%d&quot;,&x,&y,&z);
<br>if&nbsp;(x&gt;y)
<br>{t=x;x=y;y=t;}&nbsp;/*交换x,y的值*/
<br>if(x&gt;z)
<br>{t=z;z=x;x=t;}/*交换x,z的值*/
<br>if(y&gt;z)
<br>{t=y;y=z;z=t;}/*交换z,y的值*/
<br>printf(&quot;small&nbsp;to&nbsp;big:&nbsp;%d&nbsp;%d&nbsp;%d\n&quot;,x,y,z);
<br>}
<br>==============================================================
<br>【程序6】
<br>题目:用*号输出字母C的图案。
<br>1.程序分析:可先用&#39;*&#39;号在纸上写出字母C,再分行输出。
<br>2.程序源代码:
<br>#include&nbsp;&quot;stdio.h&quot;
<br>main()
<br>{
<br>printf(&quot;Hello&nbsp;C-world!\n&quot;);
<br>printf(&quot;&nbsp;****\n&quot;);
<br>printf(&quot;&nbsp;*\n&quot;);
<br>printf(&quot;&nbsp;*&nbsp;\n&quot;);
<br>printf(&quot;&nbsp;****\n&quot;);
<br>}
<br>==============================================================
<br>【程序7】
<br>题目:输出特殊图案,请在c环境中运行,看一看,Very&nbsp;Beautiful!
<br>1.程序分析:字符共有256个。不同字符,图形不一样。      
<br>2.程序源代码:
<br>#include&nbsp;&quot;stdio.h&quot;
<br>main()
<br>{
<br>char&nbsp;a=176,b=219;
<br>printf(&quot;%c%c%c%c%c\n&quot;,b,a,a,a,b);
<br>printf(&quot;%c%c%c%c%c\n&quot;,a,b,a,b,a);
<br>printf(&quot;%c%c%c%c%c\n&quot;,a,a,b,a,a);
<br>printf(&quot;%c%c%c%c%c\n&quot;,a,b,a,b,a);
<br>printf(&quot;%c%c%c%c%c\n&quot;,b,a,a,a,b);}
<br>==============================================================
<br>【程序8】
<br>题目:输出9*9口诀。
<br>1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
<br>2.程序源代码:
<br>#include&nbsp;&quot;stdio.h&quot;
<br>main()
<br>{
<br> int&nbsp;i,j,result;
<br> printf(&quot;\n&quot;);
<br> for&nbsp;(i=1;i&lt;10;i++)
<br>  {&nbsp;for(j=1;j&lt;10;j++)
<br>    {
<br>     result=i*j;
<br>     printf(&quot;%d*%d=%-3d&quot;,i,j,result);/*-3d表示左对齐,占3位*/
<br>    }
<br>   printf(&quot;\n&quot;);/*每一行后换行*/
<br>  }
<br>}
<br>==============================================================
<br>【程序9】
<br>题目:要求输出国际象棋棋盘。
<br>1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
<br>2.程序源代码:
<br>#include&nbsp;&quot;stdio.h&quot;
<br>main()
<br>{
<br>int&nbsp;i,j;
<br>for(i=0;i&lt;8;i++)
<br> {
<br>  for(j=0;j&lt;8;j++)
<br>   if((i+j)%2==0)
<br>    printf(&quot;%c%c&quot;,219,219);
<br>   else
<br>    printf(&quot;&nbsp;&quot;);
<br>   printf(&quot;\n&quot;);
<br> }
<br>}
<br>==============================================================&nbsp;
<br>【程序10】
<br>题目:打印楼梯,同时在楼梯上方打印两个笑脸。&nbsp;
<br>1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
<br>2.程序源代码:
<br>#include&nbsp;&quot;stdio.h&quot;
<br>main()
<br>{
<br>int&nbsp;i,j;
<br>printf(&quot;\1\1\n&quot;);/*输出两个笑脸*/
<br>for(i=1;i&lt;11;i++)
<br> {
<br> for(j=1;j&lt;=i;j++)
<br> &nbsp; printf(&quot;%c%c&quot;,219,219);
<br> printf(&quot;\n&quot;);
<br> }
<br>}
<br>
<br>
</td></tr></table>
</td></tr>
<tr><td height="17"></td><td></td></tr>
<tr><td height="17"></td>
<td align=left >作者: <a href="http://passport.baidu.com/?detail&aid=6&default_tab=1&un=tao2320"> tao2320</a>&nbsp;



<font class="gray12"> 2006-3-15 23:35 </font> 
 <a href="#sub" class=t onclick="ResetReplyTitle('2','100个经典C语言程序,大家可以进来看看。');">回复此发言</a> &nbsp; 

</td></tr>

<tr><td></td><td><hr align=left width="87%" size=1 ></td>
</tr></table><a name="#3"></a>
<table width="72%" border="0" bgcolor="#FFFFFF">
<tr>
<td  height="17" align="center" width="3%" class="gray">3</td>
<td class="p14" align=left >
<a name="684199775"></a>

<font color=#0000cc>回复:100个经典C语言程序,大家可以进来看看。</font>

</td></tr>
<tr><td></td>
<td class=f14 align=left width="97%" >
<table  style="TABLE-LAYOUT: fixed; word-wrap:break-word" width="87%" border="0" cellspacing="0" cellpadding="0"><tr><td class="gray14"> 
经典c程序100例==11--20
<br>【程序11】
<br>题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
<br>   后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
<br>1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
<br>2.程序源代码:
<br>main()
<br>{
<br>long&nbsp;f1,f2;
<br>int&nbsp;i;
<br>f1=f2=1;
<br>for(i=1;i&lt;=20;i++)
<br> {&nbsp;printf(&quot;%12ld&nbsp;%12ld&quot;,f1,f2);
<br>   if(i%2==0)&nbsp;printf(&quot;\n&quot;);/*控制输出,每行四个*/
<br>   f1=f1+f2;&nbsp;/*前两个月加起来赋值给第三个月*/
<br>   f2=f1+f2;&nbsp;/*前两个月加起来赋值给第三个月*/
<br> }
<br>}
<br>==============================================================
<br>【程序12】
<br>题目:判断101-200之间有多少个素数,并输出所有素数。
<br>1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
<br>      则表明此数不是素数,反之是素数。&nbsp;      
<br>2.程序源代码:
<br>#include&nbsp;&quot;math.h&quot;
<br>main()
<br>{
<br> int&nbsp;m,i,k,h=0,leap=1;
<br> printf(&quot;\n&quot;);
<br> for(m=101;m&lt;=200;m++)
<br>  {&nbsp;k=sqrt(m+1);
<br>   for(i=2;i&lt;=k;i++)
<br>     if(m%i==0)
<br>      {leap=0;break;}
<br>   if(leap)&nbsp;{printf(&quot;%-4d&quot;,m);h++;
<br>        if(h%10==0)
<br>        printf(&quot;\n&quot;);
<br>       &nbsp;}
<br>   leap=1;
<br>  }
<br> printf(&quot;\nThe&nbsp;total&nbsp;is&nbsp;%d&quot;,h);
<br>}
<br>==============================================================
<br>【程序13】
<br>题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
<br>   本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
<br>1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
<br>2.程序源代码:
<br>main()
<br>{
<br>int&nbsp;i,j,k,n;
<br>printf(&quot;&#39;water&nbsp;flower&#39;number&nbsp;is:&quot;);
<br> for(n=100;n&lt;1000;n++)
<br> {
<br>  i=n/100;/*分解出百位*/
<br>  j=n/10%10;/*分解出十位*/
<br>  k=n%10;/*分解出个位*/
<br>  if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
<br>   {
<br>   printf(&quot;%-5d&quot;,n);
<br>   }
<br> }
<br>printf(&quot;\n&quot;);
<br>}
<br>==============================================================
<br>【程序14】
<br>题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
<br>程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:&nbsp;
<br>(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
<br>(2)如果n&lt;&gt;k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
<br> 重复执行第一步。
<br>(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
<br>2.程序源代码:
<br>/*&nbsp;zheng&nbsp;int&nbsp;is&nbsp;divided&nbsp;yinshu*/
<br>main()
<br>{
<br>int&nbsp;n,i;
<br>printf(&quot;\nplease&nbsp;input&nbsp;a&nbsp;number:\n&quot;);
<br>scanf(&quot;%d&quot;,&n);
<br>printf(&quot;%d=&quot;,n);
<br>for(i=2;i&lt;=n;i++)
<br> {
<br>  while(n!=i)
<br>  {
<br>   if(n%i==0)
<br>   {&nbsp;printf(&quot;%d*&quot;,i);
<br>    n=n/i;
<br>   }
<br>   else
<br>    break;
<br>  }
<br>}
<br>printf(&quot;%d&quot;,n);}
<br>==============================================================
<br>【程序15】
<br>题目:利用条件运算符的嵌套来完成此题:学习成绩&gt;=90分的同学用A表示,60-89分之间的用B表示,
<br>   60分以下的用C表示。
<br>1.程序分析:(a&gt;b)?a:b这是条件运算符的基本例子。
<br>2.程序源代码:
<br>main()
<br>{
<br> int&nbsp;score;
<br> char&nbsp;grade;
<br> printf(&quot;please&nbsp;input&nbsp;a&nbsp;score\n&quot;);
<br> scanf(&quot;%d&quot;,&score);
<br> grade=score&gt;=90?&#39;A&#39;:(score&gt;=60?&#39;B&#39;:&#39;C&#39;);
<br> printf(&quot;%d&nbsp;belongs&nbsp;to&nbsp;%c&quot;,score,grade);
<br>}
<br>==============================================================
<br>【程序16】
<br>
</td></tr></table>
</td></tr>
<tr><td height="17"></td><td></td></tr>
<tr><td height="17"></td>
<td align=left >作者: <a href="http://passport.baidu.com/?detail&aid=6&default_tab=1&un=tao2320"> tao2320</a>&nbsp;



<font class="gray12"> 2006-3-15 23:35 </font> 
 <a href="#sub" class=t onclick="ResetReplyTitle('3','回复:100个经典C语言程序,大家可以进来看看。');">回复此发言</a> &nbsp; 

</td></tr>

<tr><td></td><td><hr align=left width="87%" size=1 ></td>
</tr></table><a name="#4"></a>
<table width="72%" border="0" bgcolor="#FFFFFF">
<tr>
<td  height="17" align="center" width="3%" class="gray">4</td>
<td class="p14" align=left >
<a name="684199776"></a>

<font color=#0000cc>回复:100个经典C语言程序,大家可以进来看看。</font>

</td></tr>
<tr><td></td>
<td class=f14 align=left width="97%" >
<table  style="TABLE-LAYOUT: fixed; word-wrap:break-word" width="87%" border="0" cellspacing="0" cellpadding="0"><tr><td class="gray14"> 
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
<br>1.程序分析:利用辗除法。
<br>2.程序源代码:
<br>main()
<br>{
<br> int&nbsp;a,b,num1,num2,temp;
<br> printf(&quot;please&nbsp;input&nbsp;two&nbsp;numbers:\n&quot;);
<br> scanf(&quot;%d,%d&quot;,&num1,&num2);
<br> if(num1
<br> {&nbsp;temp=num1;
<br>  num1=num2; 
<br>  num2=temp;
<br> }
<br>a=num1;b=num2;
<br>while(b!=0)/*利用辗除法,直到b为0为止*/
<br> {
<br>  temp=a%b;
<br>  a=b;
<br>  b=temp;
<br> }
<br>printf(&quot;gongyueshu:%d\n&quot;,a);
<br>printf(&quot;gongbeishu:%d\n&quot;,num1*num2/a);
<br>}
<br>==============================================================
<br>【程序17】
<br>题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
<br>1.程序分析:利用while语句,条件为输入的字符不为&#39;\n&#39;.
<br>      
<br>2.程序源代码:
<br>#include&nbsp;&quot;stdio.h&quot;
<br>main()
<br>{char&nbsp;c;
<br> int&nbsp;letters=0,space=0,digit=0,others=0;
<br> printf(&quot;please&nbsp;input&nbsp;some&nbsp;characters\n&quot;);
<br> while((c=getchar())!=&#39;\n&#39;)
<br> {
<br> if(c&gt;=&#39;a&#39;&&c&lt;=&#39;z&#39;||c&gt;=&#39;A&#39;&&c&lt;=&#39;Z&#39;)
<br>  letters++;
<br> else&nbsp;if(c==&#39;&nbsp;&#39;)
<br>  space++;
<br>   else&nbsp;if(c&gt;=&#39;0&#39;&&c&lt;=&#39;9&#39;)
<br>       digit++;
<br>     else
<br>       others++;
<br>}
<br>printf(&quot;all&nbsp;in&nbsp;all:char=%d&nbsp;space=%d&nbsp;digit=%d&nbsp;others=%d\n&quot;,letters,
<br>space,digit,others);
<br>}
<br>==============================================================
<br>【程序18】
<br>题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时
<br>   共有5个数相加),几个数相加有键盘控制。
<br>1.程序分析:关键是计算出每一项的值。
<br>2.程序源代码:
<br>main()
<br>{
<br> int&nbsp;a,n,count=1;
<br> long&nbsp;int&nbsp;sn=0,tn=0;
<br> printf(&quot;please&nbsp;input&nbsp;a&nbsp;and&nbsp;n\n&quot;);
<br> scanf(&quot;%d,%d&quot;,&a,&n);
<br> printf(&quot;a=%d,n=%d\n&quot;,a,n);
<br> while(count&lt;=n)
<br> {
<br>  tn=tn+a;
<br>  sn=sn+tn;
<br>  a=a*10;
<br>  ++count;
<br> }
<br>printf(&quot;a+aa+...=%ld\n&quot;,sn);
<br>}
<br>==============================================================
<br>【程序19】
<br>题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
<br>   找出1000以内的所有完数。
<br>1.&nbsp;程序分析:请参照程序&lt;--上页程序14.&nbsp;
<br>2.程序源代码:
<br>main()
<br>{
<br>static&nbsp;int&nbsp;k[10];
<br>int&nbsp;i,j,n,s;
<br>for(j=2;j&lt;1000;j++)
<br> {
<br> n=-1;
<br> s=j;
<br>  for(i=1;i&lt;J;I++)
<br>  {
<br>   if((j%i)==0)
<br>   { n++;
<br>    s=s-i;
<br>    k[n]=i;
<br>   }
<br>  }
<br> if(s==0)
<br> {
<br> printf(&quot;%d&nbsp;is&nbsp;a&nbsp;wanshu&quot;,j);
<br> for(i=0;i&lt;N;I++)
<br> printf(&quot;%d,&quot;,k[i]);
<br> printf(&quot;%d\n&quot;,k[n]);
<br> }
<br>}
<br>}
<br>==============================================================&nbsp;
<br>【程序20】
<br>题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
<br>   第10次落地时,共经过多少米?第10次反弹多高?
<br>1.程序分析:见下面注释
<br>2.程序源代码:
<br>main()
<br>{
<br>float&nbsp;sn=100.0,hn=sn/2;
<br>int&nbsp;n;
<br>for(n=2;n&lt;=10;n++)
<br> {
<br>  sn=sn+2*hn;/*第n次落地时共经过的米数*/
<br>  hn=hn/2;&nbsp;/*第n次反跳高度*/
<br> }
<br>printf(&quot;the&nbsp;total&nbsp;of&nbsp;road&nbsp;is&nbsp;%f\n&quot;,sn);
<br>printf(&quot;the&nbsp;tenth&nbsp;is&nbsp;%f&nbsp;meter\n&quot;,hn);
<br>}
</td></tr></table>
</td></tr>
<tr><td height="17"></td><td></td></tr>
<tr><td height="17"></td>
<td align=left >作者: <a href="http://passport.baidu.com/?detail&aid=6&default_tab=1&un=tao2320"> tao2320</a>&nbsp;



<font class="gray12"> 2006-3-15 23:35 </font> 
 <a href="#sub" class=t onclick="ResetReplyTitle('4','回复:100个经典C语言程序,大家可以进来看看。');">回复此发言</a> &nbsp; 

</td></tr>

<tr><td></td><td><hr align=left width="87%" size=1 ></td>
</tr></table><a name="#5"></a>
<table width="72%" border="0" bgcolor="#FFFFFF">
<tr>
<td  height="17" align="center" width="3%" class="gray">5</td>
<td class="p14" align=left >
<a name="684200057"></a>

<font color=#0000cc>回复:100个经典C语言程序,大家可以进来看看。</font>

</td></tr>
<tr><td></td>
<td class=f14 align=left width="97%" >
<table  style="TABLE-LAYOUT: fixed; word-wrap:break-word" width="87%" border="0" cellspacing="0" cellpadding="0"><tr><td class="gray14"> 
    经典c程序100例==21--30
<br>【程序21】
<br>题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
<br>   第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
<br>   的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
<br>1.程序分析:采取逆向思维的方法,从后往前推断。
<br>2.程序源代码:
<br>main()
<br>{
<br>int&nbsp;day,x1,x2;
<br>day=9;
<br>x2=1;
<br>while(day&gt;0)
<br> {x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/
<br> x2=x1;
<br> day--;
<br> }
<br>printf(&quot;the&nbsp;total&nbsp;is&nbsp;%d\n&quot;,x1);
<br>}
<br>==============================================================
<br>【程序22】
<br>题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定
<br>   比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出
<br>   三队赛手的名单。&nbsp;
<br>1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
<br>      则表明此数不是素数,反之是素数。&nbsp;      
<br>2.程序源代码:
<br>main()
<br>{
<br>char&nbsp;i,j,k;/*i是a的对手,j是b的对手,k是c的对手*/
<br>for(i=&#39;x&#39;;i&lt;=&#39;z&#39;;i++)
<br> for(j=&#39;x&#39;;j&lt;=&#39;z&#39;;j++)
<br> {
<br> if(i!=j)
<br>  for(k=&#39;x&#39;;k&lt;=&#39;z&#39;;k++)
<br>  {&nbsp;if(i!=k&&j!=k)
<br>   {&nbsp;if(i!=&#39;x&#39;&&k!=&#39;x&#39;&&k!=&#39;z&#39;)
<br>   printf(&quot;order&nbsp;is&nbsp;a--%c\tb--%c\tc--%c\n&quot;,i,j,k);
<br>   }
<br>  }
<br> }
<br>}
<br>==============================================================
<br>【程序23】&nbsp;
<br>题目:打印出如下图案(菱形)
<br>*
<br>***
<br>******
<br>********
<br>******
<br>***
<br>*
<br>1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重
<br>      for循环,第一层控制行,第二层控制列。&nbsp;
<br>2.程序源代码:
<br>main()
<br>{
<br>int&nbsp;i,j,k;
<br>for(i=0;i&lt;=3;i++)
<br> {
<br> for(j=0;j&lt;=2-i;j++)
<br>  printf(&quot;&nbsp;&quot;);
<br> for(k=0;k&lt;=2*i;k++)
<br>  printf(&quot;*&quot;);
<br> printf(&quot;\n&quot;);
<br> }
<br>for(i=0;i&lt;=2;i++)
<br> {
<br> for(j=0;j&lt;=i;j++)
<br>  printf(&quot;&nbsp;&quot;);
<br> for(k=0;k&lt;=4-2*i;k++)
<br>  printf(&quot;*&quot;);
<br> printf(&quot;\n&quot;);
<br> }
<br>}
<br>==============================================================
<br>【程序24】&nbsp;
<br>题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
<br>1.程序分析:请抓住分子与分母的变化规律。&nbsp;
<br>2.程序源代码:
<br>main()
<br>{
<br>int&nbsp;n,t,number=20;
<br>float&nbsp;a=2,b=1,s=0;
<br>for(n=1;n&lt;=number;n++)
<br> {
<br> s=s+a/b;
<br> t=a;a=a+b;b=t;/*这部分是程序的关键,请读者猜猜t的作用*/
<br> }
<br>printf(&quot;sum&nbsp;is&nbsp;%9.6f\n&quot;,s);
<br>}
<br>==============================================================
<br>【程序25】&nbsp;
<br>题目:求1+2!+3!+...+20!的和
<br>1.程序分析:此程序只是把累加变成了累乘。&nbsp;
<br>2.程序源代码:
<br>main()
<br>{
<br>float&nbsp;n,s=0,t=1;
<br>for(n=1;n&lt;=20;n++)
<br> {
<br> t*=n;
<br> s+=t;
<br> }
<br>printf(&quot;1+2!+3!...+20!=%e\n&quot;,s);
<br>}
<br>==============================================================
<br>【程序26】&nbsp;
<br>题目:利用递归方法求5!。
<br>1.程序分析:递归公式:fn=fn_1*4!
<br>2.程序源代码:
<br>#include&nbsp;&quot;stdio.h&quot;
<br>main()
<br>{
<br>int&nbsp;i;
<br>int&nbsp;fact();
<br>for(i=0;i&lt;5;i++)
<br> printf(&quot;\40:%d!=%d\n&quot;,i,fact(i));
<br>}
<br>int&nbsp;fact(j)
<br>int&nbsp;j;
<br>{
<br>int&nbsp;sum;
<br>if(j==0)
<br> sum=1;
<br>else
<br> sum=j*fact(j-1);
<br>return&nbsp;sum;
<br>}
<br>==============================================================
<br>【程序27】&nbsp;
<br>题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
<br>1.程序分析:
<br>2.程序源代码:
<br>#include&nbsp;&quot;stdio.h&quot;
<br>main()
<br>
</td></tr></table>
</td></tr>
<tr><td height="17"></td><td></td></tr>
<tr><td height="17"></td>
<td align=left >作者: <a href="http://passport.baidu.com/?detail&aid=6&default_tab=1&un=tao2320"> tao2320</a>&nbsp;



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -