C 语言典范编程

本文介绍了四个编程算法实现,包括斐波那契数列(兔子序列)的计算,101-200之间的素数判断及输出,三位数的水仙花数检测,以及正整数的质因数分解。这些算法涉及基础数学和计算机科学中的递归、循环、条件判断等概念,对于初学者来说是很好的实践案例。
摘要由CSDN通过智能技术生成

程序1】
题目:古典题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
   后每个月又生一对兔子,假定兔子都不死,问每个月的兔子总数为几 ?
1,程序解析: 兔子的规律为数列1,1,2,3,5,8,13,21,…
2,程序源代码:
main()
{
long f1,f2;
int i;
f1=f2=1;
for(i=1;i<=20;i++)
 { printf(“%12ld %12ld”,f1,f2);
   if(i%2==0) printf(“\n”);操纵输出,每行四个
   f1=f1+f2;前两个月加起来赋值给第三个月
   f2=f1+f2;前两个月加起来赋值给第三个月
 }
}

【程序2】
题目:判断101-200之间有几 个素数,同时输出全部素数.
1,程序解析:判断素数的方式:用一个数分不去除2到sqrt(那个数),介入能被整除,
      那么 表明此数不是 素数,反之是 素数.      
2,程序源代码:
#include “math.h”
main()
{
 int m,i,k,h=0,leap=1;
 printf(“\n”);
 for(m=101;m<=200;m++)
  { k=sqrt(m+1);
   for(i=2;i<=k;i++)
     if(m%i0)
      {leap=0;break;}
   if(leap) {printf(“%-4d”,m);h++;
        if(h%10
0)
        printf(“\n”);
        }
   leap=1;
  }
 printf(“\nThe total is %d”,h);
}

【程序3】
题目:打印出全部的“水仙花数”,所谓“水仙花数”是 指一个三位数,其列位数字立方和等于该数
   自已.例似:153是 一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方.
1,程序解析:操纵for循环操纵100-999个数,每个数分化出个位,十位,百位.
2,程序源代码:
main()
{
int i,j,k,n;
printf(“'water flower’number is:”);
 for(n=100;n<1000;n++)
 {
  i=n100;分化出百位
  j=n10%10;分化出十位
  k=n%10;分化出个位
  if(i100+j10+k==iii+jjj+kkk)
   {
   printf(“%-5d”,n);
   }
 }
printf(“\n”);
}

【程序4】
题目:将一个正整数分化质因数.例似:输入90,打印出90=233*5,
程序解析:对n履行分化质因数,应先找到一个最小的质数k,接着按下述步调实现:
(1)介入那个质数恰等于n,那么讲明分化质因数的环节差不多终了,打印出即可.
(2)介入n<>k,但n能被k整除,那么应打印出k的值,同时用n除以k的商,做为新的正整数你n,
 重复履行第一步.
(3)介入n不能被k整除,那么用k+1做为k的值,重复履行第一步.
2,程序源代码:

  • zheng int is divided yinshu*
    main()
    {
    int n,i;
    printf(“\nplease input a number:\n”);
    scanf(“%d”,&n);
    printf(“%d=”,n);
    for(i=2;i<=n;i++)
     {
      while(n!=i)
      {
       if(n%i==0)
       { printf(“%d*”,i);
        n=ni;
       }
       else
        break;
      }
    }
    printf(“%d”,n);}
    ==============================================================
    【程序5】
    题目:操纵前提运算符的嵌套来实现此题:进修成绩>=90分的同学用A示意,60-89分之间的用B示意,
       60分以下的用C示意.
    1,程序解析:(a>b)? a:b这是 前提运算符的根本例子.
    2,程序源代码:
    main()
    {
     int score;
     char grade;
     printf(“please input a score\n”);
     scanf(“%d”,&score);
     grade=score>=90? ‘A’:(score>=60? ‘B’:‘C’);
     printf(“%d belongs to %c”,score,grade);
    }
    ==============================================================
    【程序6】
    题目:输入两个正整数m和n,求其最大公约数和最小公倍数.
    1,程序解析:操纵辗除法.
    2,程序源代码:
    main()
    {
     int a,b,num1,num2,temp;
     printf(“please input two numbers:\n”);
     scanf(“%d,%d”,&num1,&num2);
     if(num1  { temp=num1;
      num1=num2; 
      num2=temp;
     }
    a=num1;b=num2;
    while(b!=0)操纵辗除法,直到b为0为止
     {
      temp=a%b;
      a=b;
      b=temp;
     }
    printf(“gongyueshu:%d\n”,a);
    printf(“gongbeishu:%d\n”,num1*num2a);
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zxbyzx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值