第五次作業

來源:互聯網
上載者:User

標籤:char   個數   oat   int   包括   bre   定義   http   error   

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

#include <stdio.h>int main(){int m,n,i,j,d,sum=0,c;printf("輸入兩個正整數m和n,要求m<=n:");scanf("%d %d",&m,&n);if(m>n){c=m;m=n;n=c;}for(i=m;i<=n;i++){       d=1;for(j=1;j<=i;j++){d=d*j;}sum=sum+d;   }printf("%d",sum);return 0;}

  

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

#include <stdio.h>int main(){int i,j,a;for(i=1;i<=1000;i++){    a=0; for(j=1;j<i;j++) { if(i%j==0) a=a+j;         }if(a==i)printf("%4d",i);} 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,i,j;printf("請輸入正整數n:");scanf("%d",&n);i=0;if(n<=0){printf("error");}while(n!=1){if(n%2==0){n=n/2;printf("%d=%d/2\n",n,2*n); }  else {  n=3*n+1; printf("%d=3*%d+1\n",n,n/3-1); } i++;     }     printf("一共需要%d步能歸一",i);     return 0;}

  

附加題: 

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

#include <stdio.h>int main(){int n,i,a=1,b=2,c;float sum=0;printf("輸入一個正整數n:");scanf("%d",&n);i=2;while(i<=n){   c=a;   a=b;   b=c+b;   sum=(float)b/a+sum;  i++;}sum=sum+2;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 a;printf("輸入一串字元,字元包括a-z:");scanf("%c",&a);while(a!=‘\n‘){  if(a>=‘a‘&&a<=‘w‘) { a=a+3;    printf("%c",a);      } if(a>=‘w‘&&a<=‘z‘) { a=a-23;  printf("%c",a); }  scanf("%c",&a); } return 0;}

  

實驗總結:1.注意定義字元時用char型,迴圈變數一般定義為int類型。

              2.注意賦初值,不同編譯器所預設的初值不同。

              3.注意分析題的規律,列出結構框圖,做題效率才會高。

              4.注意迴圈語句的嵌套,大括弧的位置。

              5.for語句和while語句後不加分號,do...while後加分號。

              6.char型只佔一個位元組,輸出多個字元是要使用迴圈語句。

              7.break結束迴圈,continue結束本次迴圈,注意使用。

              8.注意格式整齊,清楚。

  

        

第五次作業

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.