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

📄 21.html

📁 经典C语言程序设计100例1-10 如【程序1】 题目:有1、2、3、4个数字
💻 HTML
字号:
<html>
<head>
<title>C程序设计21-30</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="cc.css" type="text/css">
</head>

<body bgcolor="#6666FF" text="#FFFFFF" link="#99FF33" alink="#00CC00" vlink="#FFFF00">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="21%">&nbsp;</td>
    <td>
      <div align="center"><br>
            <font color="#FFFF00" size="5"><span class="unnamed1">经典c程序100例==21--30 
        </span></font> </div>
      <p class="unnamed1">【程序21】<br>
        题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个<br>
           第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下<br>
           的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。<br>
        1.程序分析:采取逆向思维的方法,从后往前推断。<br>
        2.程序源代码:<br>
        main()<br>
        {<br>
        int 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 total is %d\n&quot;,x1);<br>
        }<br>
        ==============================================================<br>
        【程序22】<br>
        题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定<br>
           比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出<br>
           三队赛手的名单。 <br>
        1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,<br>
              则表明此数不是素数,反之是素数。       <br>
        2.程序源代码:<br>
        main()<br>
        {<br>
        char i,j,k;/*i是a的对手,j是b的对手,k是c的对手*/<br>
        for(i='x';i&lt;='z';i++)<br>
         for(j='x';j&lt;='z';j++)<br>
         {<br>
         if(i!=j)<br>
          for(k='x';k&lt;='z';k++)<br>
          { if(i!=k&amp;&amp;j!=k)<br>
           { if(i!='x'&amp;&amp;k!='x'&amp;&amp;k!='z')<br>
           printf(&quot;order is a--%c\tb--%c\tc--%c\n&quot;,i,j,k);<br>
           }<br>
          }<br>
         }<br>
        }<br>
        ==============================================================<br>
        【程序23】 <br>
        题目:打印出如下图案(菱形)</p>
      <p class="unnamed1"><span class="unnamed1">*<br>
        ***<br>
        ******<br>
        ********<br>
        ******<br>
        ***<br>
        *<br>
        1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重<br>
              for循环,第一层控制行,第二层控制列。 <br>
        2.程序源代码:<br>
        main()<br>
        {<br>
        int i,j,k;<br>
        for(i=0;i&lt;=3;i++)<br>
         {<br>
         for(j=0;j&lt;=2-i;j++)<br>
          printf(&quot; &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; &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】 <br>
        题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。<br>
        1.程序分析:请抓住分子与分母的变化规律。 <br>
        2.程序源代码:<br>
        main()<br>
        {<br>
        int n,t,number=20;<br>
        float 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 is %9.6f\n&quot;,s);<br>
        }<br>
        ==============================================================<br>
        【程序25】 <br>
        题目:求1+2!+3!+...+20!的和<br>
        1.程序分析:此程序只是把累加变成了累乘。 <br>
        2.程序源代码:<br>
        main()<br>
        {<br>
        float 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】 <br>
        题目:利用递归方法求5!。<br>
        1.程序分析:递归公式:fn=fn_1*4!<br>
        2.程序源代码:<br>
        #include &quot;stdio.h&quot;<br>
        main()<br>
        {<br>
        int i;<br>
        int fact();<br>
        for(i=0;i&lt;5;i++)<br>
         printf(&quot;\40:%d!=%d\n&quot;,i,fact(i));<br>
        }<br>
        int fact(j)<br>
        int j;<br>
        {<br>
        int sum;<br>
        if(j==0)<br>
         sum=1;<br>
        else<br>
         sum=j*fact(j-1);<br>
        return sum;<br>
        }<br>
        ==============================================================<br>
        【程序27】 <br>
        题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。<br>
        1.程序分析:<br>
        2.程序源代码:<br>
        #include &quot;stdio.h&quot;<br>
        main()<br>
        {<br>
        int i=5;<br>
        void palin(int n);<br>
        printf(&quot;\40:&quot;);<br>
        palin(i);<br>
        printf(&quot;\n&quot;);<br>
        }<br>
        void palin(n)<br>
        int n;<br>
        {<br>
        char next;<br>
        if(n&lt;=1)<br>
         {<br>
         next=getchar();<br>
         printf(&quot;\n\0:&quot;);<br>
         putchar(next);<br>
         }<br>
        else<br>
         {<br>
         next=getchar();<br>
         palin(n-1);<br>
         putchar(next);<br>
         }<br>
        }<br>
        ==============================================================<br>
        【程序28】 <br>
        题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第<br>
           3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 <br>
           问第一个人,他说是10岁。请问第五个人多大?<br>
        1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道<br>
              第四人的岁数,依次类推,推到第一人(10岁),再往回推。<br>
        2.程序源代码:<br>
        age(n)<br>
        int n;<br>
        {<br>
        int c;<br>
        if(n==1) c=10;<br>
        else c=age(n-1)+2;<br>
        return(c);<br>
        }<br>
        main()<br>
        { printf(&quot;%d&quot;,age(5));<br>
        }<br>
        ==============================================================<br>
        【程序29】 <br>
        题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。<br>
        1. 程序分析:学会分解出每一位数<br>
        2.程序源代码:<br>
        main( )<br>
        {<br>
        long a,b,c,d,e,x;<br>
        scanf(&quot;%ld&quot;,&amp;x);<br>
        a=x/10000;/*分解出万位*/<br>
        b=x%10000/1000;/*分解出千位*/<br>
        c=x%1000/100;/*分解出百位*/<br>
        d=x%100/10;/*分解出十位*/<br>
        e=x%10;/*分解出个位*/<br>
        if (a!=0) printf(&quot;there are 5, %ld %ld %ld %ld %ld\n&quot;,e,d,c,b,a);<br>
        else if (b!=0) printf(&quot;there are 4, %ld %ld %ld %ld\n&quot;,e,d,c,b);<br>
          else if (c!=0) printf(&quot; there are 3,%ld %ld %ld\n&quot;,e,d,c);<br>
            else if (d!=0) printf(&quot;there are 2, %ld %ld\n&quot;,e,d);<br>
              else if (e!=0) printf(&quot; there are 1,%ld\n&quot;,e);<br>
        }<br>
        ==============================================================<br>
        【程序30】 <br>
        题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。   <br>
        1.程序分析:同29例<br>
        2.程序源代码:<br>
        main( )<br>
        {<br>
        long ge,shi,qian,wan,x;<br>
        scanf(&quot;%ld&quot;,&amp;x);<br>
        wan=x/10000;<br>
        qian=x%10000/1000;<br>
        shi=x%100/10;<br>
        ge=x%10;<br>
        if (ge==wan&amp;&amp;shi==qian)/*个位等于万位并且十位等于千位*/<br>
         printf(&quot;this number is a huiwen\n&quot;);<br>
        else<br>
         printf(&quot;this number is not a huiwen\n&quot;);<br>
        }<br>
        </span> </p>
    </td>
    <td width="21%">&nbsp;</td>
  </tr>
</table>
</body>
</html>

⌨️ 快捷键说明

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