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

📄 经典c程序100例==11--20.htm

📁 100个经典的C源程序
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0044)file://D:\777\aaa\经典c程序100例==11--20.htm -->
<!-- saved from url=(0041)http://www.vcok.com/class/list.asp?id=204 --><HTML><HEAD><TITLE>经典c程序100例==11--20</TITLE>
<META content="MSHTML 6.00.2600.0" name=GENERATOR>
<META content="铁岭师专beck&amp;杜博 制作 http://www.vcok.com" name=keywords><LINK 
href="经典c程序100例==11--20.files/new.css" rel=stylesheet>
<STYLE>.skin0 {
	BORDER-RIGHT: black 2px solid; BORDER-TOP: black 2px solid; VISIBILITY: hidden; BORDER-LEFT: black 2px solid; WIDTH: 130px; CURSOR: default; LINE-HEIGHT: 20px; BORDER-BOTTOM: black 2px solid; FONT-FAMILY: Verdana; POSITION: absolute; BACKGROUND-COLOR: menu; TEXT-ALIGN: left
}
.skin1 {
	BORDER-RIGHT: buttonhighlight 2px outset; BORDER-TOP: buttonhighlight 2px outset; FONT-SIZE: 9pt; VISIBILITY: hidden; BORDER-LEFT: buttonhighlight 2px outset; WIDTH: 110px; CURSOR: default; BORDER-BOTTOM: buttonhighlight 2px outset; FONT-FAMILY: 宋体, Arial, Helvetica, sans-serif; POSITION: absolute; BACKGROUND-COLOR: menu; TEXT-ALIGN: left
}
.menuitems {
	PADDING-RIGHT: 10px; PADDING-LEFT: 15px
}
</STYLE>

<STYLE type=text/css>TD {
	FONT-SIZE: 9pt
}
BODY {
	FONT-SIZE: 9pt; COLOR: #000000; LINE-HEIGHT: 150%
}
A:link {
	COLOR: #000000; TEXT-DECORATION: none
}
A:visited {
	COLOR: #000000; TEXT-DECORATION: none
}
A:active {
	COLOR: #000000; TEXT-DECORATION: none
}
A:hover {
	COLOR: #ff0000; TEXT-DECORATION: underline
}
</STYLE>

<META http-equiv=Content-Type content="text/html; charset=gb2312">
<SCRIPT language=JavaScript>
<!--
var text=">>>> [ w w w . v c o k . c o m ] <<<< "
  var speed2=180
  var x=0
  function s2b()
  {var a=text.substring(0,x)
   var b=text.substring(x,x+1).toUpperCase()
   var c=text.substring(x+1,text.length)
   window.status=a+b+c
   if(x==text.length){x=0}
   else{x++}setTimeout("s2b()",speed2)}
  s2b();
//-->
</SCRIPT>

<STYLE type=text/css>A.link-a:hover {
	COLOR: #f7f3f7; TEXT-DECORATION: none
}
A.link-a:visited {
	COLOR: #ffffff; TEXT-DECORATION: none
}
A.link-a:link {
	COLOR: #ffffff; TEXT-DECORATION: none
}
</STYLE>

<META content="Microsoft FrontPage 5.0" name=GENERATOR></HEAD>
<BODY text=#000000 bgColor=#ffffff leftMargin=0 
background=经典c程序100例==11--20.files/bg.gif topMargin=0 
onload="MM_preloadImages('images/print2.png','images/save2.png','images/re_write2.gif','images/home2.png')">
<P align=left> </P>
<DIV align=center>
<CENTER>
<TABLE id=AutoNumber1 style="BORDER-COLLAPSE: collapse" borderColor=#111111 
cellSpacing=0 cellPadding=0 width="80%" border=1>
  <TBODY>
  <TR>
    <TD align=middle width="80%">
      <P align=left><FONT color=#ff9933><B><FONT color=#3300cc 
      size=5>经典c程序100例==11--20</FONT></B></FONT></P>
      <P align=left><FONT 
      color=#990000>【程序11】</FONT><BR>题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月<BR>   后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?<BR>1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....<BR>2.程序源代码:<BR>main()<BR>{<BR>long 
      f1,f2;<BR>int i;<BR>f1=f2=1;<BR>for(i=1;i&lt;=20;i++)<BR> { printf("%12ld 
      %12ld",f1,f2);<BR>   if(i%2==0) printf("\n");/*控制输出,每行四个*/<BR>   f1=f1+f2; 
      /*前两个月加起来赋值给第三个月*/<BR>   f2=f1+f2; 
      /*前两个月加起来赋值给第三个月*/<BR> }<BR>}<BR>==============================================================<BR><FONT 
      color=#990000>【程序12】</FONT><BR>题目:判断101-200之间有多少个素数,并输出所有素数。<BR>1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,<BR>      则表明此数不是素数,反之是素数。 
            <BR>2.程序源代码:<BR>#include "math.h"<BR>main()<BR>{<BR> int 
      m,i,k,h=0,leap=1;<BR> printf("\n");<BR> for(m=101;m&lt;=200;m++)<BR>  { 
      k=sqrt(m+1);<BR>   for(i=2;i&lt;=k;i++)<BR>     if(m%i==0)<BR>      {leap=0;break;}<BR>   if(leap) 
      {printf("%-4d",m);h++;<BR>        if(h%10==0)<BR>        printf("\n");<BR>        
      }<BR>   leap=1;<BR>  }<BR> printf("\nThe total is 
      %d",h);<BR>}<BR>==============================================================<BR><FONT 
      color=#990000>【程序13】</FONT><BR>题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数<BR>   本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。<BR>1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。<BR>2.程序源代码:<BR>main()<BR>{<BR>int 
      i,j,k,n;<BR>printf("'water flower'number 
      is:");<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("%-5d",n);<BR>   }<BR> }<BR>printf("\n");<BR>}<BR>==============================================================<BR><FONT 
      color=#990000>【程序14】</FONT><BR>题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。</P>
      <P align=left>程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 
      <BR>(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。<BR>(2)如果n&lt;&gt;k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,<BR> 重复执行第一步。<BR>(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。</P>
      <P align=left>2.程序源代码:<BR>/* zheng int is divided 
      yinshu*/<BR>main()<BR>{<BR>int n,i;<BR>printf("\nplease input a 
      number:\n");<BR>scanf("%d",&amp;n);<BR>printf("%d=",n);<BR>for(i=2;i&lt;=n;i++)<BR> {<BR>  while(n!=i)<BR>  {<BR>   if(n%i==0)<BR>   { 
      printf("%d*",i);<BR>    n=n/i;<BR>   }<BR>   else<BR>    break;<BR>  }<BR>}<BR>printf("%d",n);}<BR>==============================================================<BR><FONT 
      color=#990000>【程序15】</FONT><BR>题目:利用条件运算符的嵌套来完成此题:学习成绩&gt;=90分的同学用A表示,60-89分之间的用B表示,<BR>   60分以下的用C表示。<BR>1.程序分析:(a&gt;b)?a:b这是条件运算符的基本例子。<BR>2.程序源代码:<BR>main()<BR>{<BR> int 
      score;<BR> char grade;<BR> printf("please input a 
      score\n");<BR> scanf("%d",&amp;score);<BR> grade=score&gt;=90?'A':(score&gt;=60?'B':'C');<BR> printf("%d 
      belongs to 
      %c",score,grade);<BR>}<BR>==============================================================<BR><FONT 
      color=#990000>【程序16】</FONT><BR>题目:输入两个正整数m和n,求其最大公约数和最小公倍数。<BR>1.程序分析:利用辗除法。</P>
      <P align=left>2.程序源代码:<BR>main()<BR>{<BR> int 
      a,b,num1,num2,temp;<BR> printf("please input two 
      numbers:\n");<BR> scanf("%d,%d",&amp;num1,&amp;num2);<BR> if(num1<NUM2) 
      *交换两个数,使大数放在num1上* <br>  { 
      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("gongyueshu:%d\n",a);<BR>printf("gongbeishu:%d\n",num1*num2/a);<BR>}<BR>==============================================================<BR><FONT 
      color=#990000>【程序17】</FONT><BR>题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。<BR>1.程序分析:利用while语句,条件为输入的字符不为'\n'.<BR>      <BR>2.程序源代码:<BR>#include 
      "stdio.h"<BR>main()<BR>{char c;<BR> int 
      letters=0,space=0,digit=0,others=0;<BR> printf("please input some 
      characters\n");<BR> while((c=getchar())!='\n')<BR> {<BR> if(c&gt;='a'&amp;&amp;c&lt;='z'||c&gt;='A'&amp;&amp;c&lt;='Z')<BR>  letters++;<BR> else 
      if(c==' ')<BR>  space++;<BR>   else 
      if(c&gt;='0'&amp;&amp;c&lt;='9')<BR>       digit++;<BR>     else<BR>       others++;<BR>}<BR>printf("all 
      in all:char=%d space=%d digit=%d 
      others=%d\n",letters,<BR>space,digit,others);<BR>}<BR>==============================================================<BR><FONT 
      color=#990000>【程序18】</FONT><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 
      a,n,count=1;<BR> long int sn=0,tn=0;<BR> printf("please input a and 
      n\n");<BR> scanf("%d,%d",&amp;a,&amp;n);<BR> printf("a=%d,n=%d\n",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("a+aa+...=%ld\n",sn);<BR>}<BR>==============================================================<BR><FONT 
      color=#990000>【程序19】</FONT><BR>题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程<BR>   找出1000以内的所有完数。<BR>1. 
      程序分析:请参照程序&lt;--上页程序14. <BR>2.程序源代码:<BR>main()<BR>{<BR>static int 
      k[10];<BR>int 
      i,j,n,s;<BR>for(j=2;j&lt;1000;j++)<BR> {<BR> n=-1;<BR> s=j;<BR>  for(i=1;i<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("%d 
      is a wanshu",j);<BR> for(i=0;i<N;I++)<BR> 
       printf("%d,",k[i]);<BR> printf("%d\n",k[n]);<BR> }<BR>}<BR>}<BR>============================================================== 
      <BR><FONT 
      color=#990000>【程序20】</FONT><BR>题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在<BR>   第10次落地时,共经过多少米?第10次反弹多高?<BR>1.程序分析:见下面注释<BR>2.程序源代码:<BR>main()<BR>{<BR>float 
      sn=100.0,hn=sn/2;<BR>int 
      n;<BR>for(n=2;n&lt;=10;n++)<BR> {<BR>  sn=sn+2*hn;/*第n次落地时共经过的米数*/<BR>  hn=hn/2; 
      /*第n次反跳高度*/<BR> }<BR>printf("the total of road is 
      %f\n",sn);<BR>printf("the tenth is %f meter\n",hn);<BR>}</P>
      <P align=left> </P></TD></TR></TBODY></TABLE></CENTER></DIV></BODY></HTML>

⌨️ 快捷键说明

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