亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    《C語(yǔ)言實(shí)驗(yàn)指導(dǎo)》實(shí)驗(yàn)五 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)

    實(shí)驗(yàn)五 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)

    【目的與要求】

    熟練掌握while、do—while和for三種循環(huán)語(yǔ)句的應(yīng)用。

    【上機(jī)內(nèi)容】

    【一般示例】

    【例1】求5!

    main()

    {

    int n,t;

    n=1;

    t=1;

    while(t<=5)

    {

    n=n*t;

    t=t+1;

    }

    printf(“%d”,n);

    }

    【例2】求和s=1!+2!+3!

    main()

    {

    int n,s=0,t=1;

    for(n=1;n<=3;n++)

    {

    t=t*n;

    s=s+t;

    }

    printf(“%d”,s);

    }

    【例3】求和s=1!+3!+5!

    main()

    {

    int s=0,t,i,j;

    for(i=1;i<=3;i++)

    {

    t=1;

    for(j=1;j<=2*i-1;j++)

    t=t*j;

    s=s+t;

    }

    printf(“%d”,s);

    }

    【例4】求和s= 3+33+333

    main()

    {

    int s=0,t=3,i;

    for(i=1;i<=3;i++)

    {

    s=s+t;

    t=10*t+3;

    }

    printf(“%d”,s);

    }

    【例5】有一數(shù)列:2/1,3/2,5/3,8/5,…求出這個(gè)數(shù)列的前10項(xiàng)之和。

    main()

    {

    int n,t,;

    float a=2,b=1,s=0;

    for(n=1;n<=10;n++)

    {

    s=s+a/b;

    t=a;

    a=a+b;

    b=t;

    }

    printf(“%f”,s);

    }

    【例6】打印500以內(nèi)的“水仙花數(shù)”?!八苫〝?shù)”是一個(gè)三位數(shù),其各位數(shù)立方和等于該數(shù)本身。 main()

    {

    int i,j,k,n;

    for(n=100;n<=500;n++)

    {

    i=n/100;

    j=n/10-i*10;

    k=n%10;

    if(n= =i*i*i+j*j*j+k*k*k)

    printf(“ %d”,n);

    }

    }

    【例7】一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為完數(shù)。求100之內(nèi)的所有完數(shù)。

    main()

    {

    int n,s,j;

    for(n=1;n<=100;n++)

    {

    s=0;

    for(j=1;j<n;j++)

    if (n%j= =0)

    s=s+j;

    if (s= =n)

    printf(“%d”,s);

    }

    }

    【典型示例】

    【例1】計(jì)算兩個(gè)數(shù)的最大公約數(shù); 分析:首先,隨機(jī)輸入兩個(gè)數(shù)m,n(默認(rèn)m>n);其次,算法:使k為m除以n的余數(shù),如果m能被n整除,則k值為0,n為這兩個(gè)數(shù)的最大公約數(shù),否則,使k代替n,n代替m,重復(fù)以上過程,直到k值為0。

    #include”stdio.h”

    main()

    {

    int m,n,k,result;

    printf(“Enter two numbers:”);

    scanf(“%d,%d”,&m,&n);

    if(m>0&&n>0) /*限定兩個(gè)正整數(shù)*/

    {

    do

    {

    k=n%m;

    if(k= =0)

    result=m;

    else

    {

    n=m;

    m=k;

    }

    }while(k>0); /*循環(huán)取余求出最大公因子*/

    printf(“The greatest common divistor is:%dn”,result);

    }

    else printf(“Nonpositive values not allowedn”);

    }

    【例2】用牛頓迭代求方程2×3-4×2+3x-6=0在1.0附近的根。

    #include “math.h”

    main()

    {

    float x,x0,f,f1;

    x=1.0;

    do

    { x0=x;

    f=((2*x0-4)*x0+3)*x0-6;

    f1=(6*x0-8)*x0+3;

    x=x0-f/f1;

    }

    while(fabs(x-x0)>=1e-5);

    printf(“%6.2f”,x);

    }

    【例3】打印下列圖案

    *

    ***

    *****

    *******

    main()

    { int i,j;

    for(i=1; i<=4;i++)

    {for(j=1;j<= 4-i;j++)

    printf(“ ”);

    for(j=1;j<=2*i-1;j++)

    printf(“*”);

    printf(“n”);

    }

    }

    【例4】判斷m是否是素?cái)?shù)。

    程序:

    #include <math.h>

    main()

    {

    int m,i,k;

    scanf(“%d”,&m);

    k=sqrt(m+1);

    for(i=2;i<=k;i++)

    if (m%i= =0)

    break;

    if(i>=k+1)

    printf(“%d is a prime numbern”,m);

    else

    printf(“%d is not a prime numbern”,m);

    }

    【作業(yè)】

    1.輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。

    2.求Sn=a+aa+aaa+…+aa…a 之值,其中a是一個(gè)數(shù)字。例如:2+22+222+2222+22222(此時(shí)n=5), n由鍵盤輸入。

    3.求和1!+2!+3!+4!+…20!

    4. 打印100-999之間所有的“水仙花數(shù)”?!八苫〝?shù)”是一個(gè)三位數(shù),其各位數(shù)立方和等于該數(shù)本身。

    5. 一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為完數(shù)。求1000之內(nèi)的所有完數(shù)。

    6. 有一數(shù)列:2/1,3/2,5/3,8/5,…求出這個(gè)數(shù)列的前20項(xiàng)之和。

    7. 用迭代法求x= √a 。求平方根的迭公式為

    xn+1=1/2(xn+a/xn)

    要求前后兩次求出的x的差的絕對(duì)值小于10-5

    8. 用牛頓迭代求方程2×3-4×2+3x-6=0在1.5附近的根。

    9. 打印下列圖案

    *

    ***

    *****

    ***

    *

     

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)