第五次作業

來源:互聯網
上載者:User

標籤:題目   print   div   printf   奇數   密碼   color   gif   加密   

一、實驗內容

1.實驗要求:.輸入兩個正整數m和n(要求m<=n), 求m!+(m+1)!+(m+2)!…+n!

代碼:

#include<stdio.h>int main(){    int m,n,temp;    float p,sum;    printf("請輸入兩個正整數m,n:\n");    scanf("%d,%d",&m,&n);    if(m>n)    {        temp=m;        m=n;        n=temp;    }    sum=0;    p=1;    for( ;m<=n;m++)    {        p*=m;        sum+=p;    }    printf("sum=%.2f\n",sum);    return 0;}

 

程式運行結果:

 

 

2.實驗要求:輸出1000以內的所有完數。所謂完數是指這個數恰好等於除他本身外的所有因子之和。例,6的因子為1,2,3,6=1+2+3,所以6是完數。

代碼:

#include<stdio.h>int main(){    int i,n,s;    for( n=1;n<=1000;n++)    {        s=0;        for( i=1;i<=n-1;i++)        {            if(n%i==0)            {            s+=i;            }        }        if(s==n)        {            printf("%5d",n);        }    }    return 0;}

 

 

程式運行結果:

3.實驗要求:奇偶歸一猜想——對於每一個正整數,如果它是奇數,則對它乘3再加1,如果它是偶數,則對它除以2,如此迴圈,最終都能夠得到1。   如n = 11,得序列:11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1。(共有14個步驟)  題目輸入正整數n,求這個n多少步能歸一 

代碼:

#include<stdio.h>int main(){    int n,s;    printf("請輸入正整數n:\n");    scanf("%d",&n);    s=0;    for(;n!=1;)    {        while(n%2!=0)        {            n=n*3+1;            if(n==1)            {                s++;                break;            }            else            {                s++;            }        }        while(n%2==0)        {            n/=2;            if(n==1)            {                s++;                break;            }            else            {                s++;            }        }    }    printf(" %d步能歸一\n",s);    return 0;}

 

程式運行結果:

附加題1.實驗要求:輸入一個正整數n,輸出2/1+3/2+5/3+8/5+…的前n項之和,保留2位小數,該序列從第二項起,每一項的分子是前一項分子與分母的和,分母是前一項的分子

代碼:

#include<stdio.h>int main(){    int z,m,i,n;    float sum;    z=2;    m=1;    sum=0;    printf("請輸入正整數 n:\n");    scanf("%d",&n);    for(i=1;i<=n;i++)    {        sum=sum+(float)z/m;        z=z+m;        m=z-m;    }    printf("%.2f",sum);    return 0;}

 

程式運行結果:

 

附加題2.實驗要求:凱撒密碼(caeser)的原理:每一個字母按字母表順序向後移3位,如a加密後變成d,b加密後變成e,……x加密後變成a,y加密後變成b,z加密後變成c。例如:“baidu”用凱撒密碼法加密後字串變為“edlgx”。試寫一個演算法,將鍵盤輸入的文本字串(只包含a~z的字元)進行加密後輸出。 

代碼:

#include<stdio.h>int main(){    char c;    printf("請輸入文本字串(只包含a~z的字元):\n");    scanf("%c",&c);    while(c<‘a‘||c>‘z‘||c==‘\n‘)    {        printf("輸入錯誤");        c=getchar();    }    while(c!=‘\n‘)    {        if(c<=‘w‘&&c>=‘a‘)        {            c+=3;        }        else if(c==‘x‘)        {            c=‘a‘;        }        else if(c==‘y‘)        {            c=‘b‘;        }        else if(c==‘z‘)        {            c=‘c‘;        }        printf("%c",c);        c=getchar();    }    printf("\n");    return 0;}

 

程式運行結果:

 

二 、實驗總結

1.外層迴圈不管有幾個都只迴圈一次。

2.要在合適的位置聲明變數的初始值。

3.迴圈嵌套時要搞清外層迴圈和內層迴圈的變數間的關係。

4.注意輸入和輸出是否要嵌套在迴圈裡。

5.字元型資料只佔一個位元組,輸出字串要注意斷行符號的影響。

6.while後面 不加分號。

 

第五次作業

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.