当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 程序举例(初学者)

程序举例(初学者)

2019年01月20日  | 移动技术网IT编程  | 我要评论

水上搭桥,荆门万达广场,罗通拜师

例1:用π/4=1-1/3+1/5-1/7+...公式求π的近似值,直到某一项的绝对值小于10^6为止。

提示:(1)要确定计算的精度,可以配合while循环语句用fabs()函数确定精度来退出。

(2)据观察,分子不变,分母却每次递增2,且正负切换。

(3)记得结果乘以4。

#include<stdio.h>
#include<math.h>

void main()
{
    int s;
    float n,t,pi;
    t=1;pi=0;n=1.0;s=1;
    while(fabs(t)>1e-6)
    {
        pi=pi+t;
        n=n+2;
        s=-s;
        t=s/n;
    }
    pi=pi*4;
    printf("pi=%f\n",pi);
}

例2:求fibonacci数列前40个数。这个数列有如下特点:第1、2两个数为1,1。从第三个数开始,该数是其前面两个数之和。

即:

f(1)=1    (n=1)

f(2)=1    (n=2)

f(n)=f(n-1)+f(n-2)

法1:(我自己做的)

#include<stdio.h>

void main()
{
    int f1,f2,n;
    n=1;
    for(f1=1;n<=40;n++)
    {
        if(n<=2)
        {
            f2=1;
            printf("%d\n",f1);
        }
        else
        {
            if(n%2==0)
                f1=f2+f1;
            else
                f2=f1+f2;
            if(f1>f2)
                printf("%d\n",f1);
            else
                printf("%d\n",f2);
        }
    }
}

 法2:(参考答案)

#include<stdio.h>

void main()
{
    int f1,f2,n;
    f1=1;
    f2=1;
    for(n=1;n<=20;n++)
    {
        printf("%d\n%d\n",f1,f2);
        f1=f1+f2;
        f2=f2+f1;
    }
}

例3:写一个程序,允许输入一个数m,并判断m是否为素数。

算法思想:让m被2到k除,如果m能被2~k之中任何一个整数整除,则提前结束循环,此时i必然小于或等于k;如果m不能被2~k之间任意一整数整除,则在完成最后一次循环后,i还要加1,因此i=k+1,然后才终止循环。在循环之后判别i的值是否大于或等于k+1,若是,则表明未曾被2~k之间任意整数整除过,因此输出“是素数”。

法1:(我自己做的)

#include<stdio.h>

void main()
{
    int i,m;
    scanf("%d",&m);
    for(i=2;i<m;i++)
    {
        if(0==m%i)
        {
            printf("%d is not a prime number\n",m);
            break;
        }
    }
    if(i==m)
        printf("%d is a prime number\n",m);
}

 法2(参考答案)

#include<stdio.h>
#include<math.h>

void main()
{
    int m,i,k;
    scanf("%d",&m);
    k = sqrt(m);
    for(i=2;i<=k;i++)
    {
        if(m%i==0)
        {
            break;
        }
    }
    if(i>k)
    {
        printf("%d is a prime number",m);
    }
    else
    {
        printf("%d is not a prime number",m);
    }
}

例4:把100~200间的素数全部打印出来。

#include<stdio.h>

void main()
{
    int m,i;
    for(m=100;m<=200;m++)
    {
        for(i=2;i<m;i++)
        {
            if(0==m%i)
                break;
        }
        if(m==i)
        {
            printf("%d\n",m);
        }
    }
}

例5:按以下规律将电文变成密码:

将字母a变成字母e,a变成e,即变成其后的第四个字母,w变成a,x变成b,y变成c,z变成d。

提示:两个功能:

一、输入原文译成密码。

二、输入密码译成原文。

  

    

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网