IOS階段學習第四天筆記(迴圈),ios第四天

來源:互聯網
上載者:User

IOS階段學習第四天筆記(迴圈),ios第四天

                                        IOS學習(C語言)知識點整理筆記

 一、分支結構

1、分支結構分為單分支 即:if( ){ } ;多分支 即:if( ){ }else{ }  兩種

2、單分支 if運算式成立則執行{ }裡的語句;雙分支 if運算式不成立 則執行else{ }裡面的語句

3、字串的輸出系統會從數組地址一直列印到字元 ‘\0’為止,如果沒有正確初始化,可能會列印出數組外的資訊

4、如果分支結構裡面只有一條執行語句可省略外面的大括弧{} .

二、開關語句

 1、語句結構 :switch (參數) case 常量:  執行語句;break;default: 執行語句;break; case 後面必須是常量且不能重複

 2、無特殊情況每個case後面必須加上break 不然會造成 case穿透 執行

 3、default 一般建議保留 用於處理所有case不滿足的條件

三、迴圈結構

 1、迴圈:即在滿足運算式條件的時候反覆執行語句組 ;迴圈必須有允出準則否則就是死迴圈。

 2、迴圈類型:for( 初始化語句1; 條件判斷語句2; 語句3){ 執行語句} ;while(條件陳述式){執行語句};do{ 執行語句}while(條件陳述式);

 3、迴圈體中 continue 表示跳過當前條件內容執行下次迴圈  break表示結束整個迴圈

 4、do while 第一次迴圈的時候,先執行語句後做判斷,至少執行一次。

 5、while 與 do while 在迴圈之前必須先初始化 ,for 迴圈自身已經包含初始化語句。

四、goto  跳躍陳述式

 1、goto 表示無條件跳轉到一個標籤,盡量避免使用 ,缺點:使代碼目錄不清晰,破壞層次感

 2、goto  執行個體:

  //goto 實現1~100求和

 

 1  int main(){ 3     int sum = 0; 5     int i = 1;7     ADD:9     sum +=i;11     i++;13     if(i<=100){15      goto ADD;//跳到標籤號所在行,往下執行17     }19     printf("sum=%d\n",sum);21     return 0;23   }

五、迴圈練習題

  1、計算當前輸入字元中數字、大/小字母、其他字元 個數

    實現代碼:

 1 int main(){ 3     int sz=0,xz=0,dz=0,qt=0; 5     char ch; 7     while ((ch=getchar())!='\n') { 9     if(ch>='0'&&ch<='9')11       sz++;13     else if(ch>='a'&&ch<='z')15         xz++;17     else if (ch>='A'&&ch<='Z')19         dz++;21     else23         qt++;25     }27     printf("共輸入了%d個數字字元\n",sz);29     printf("共輸入了%d個小寫字母字元\n",xz);31     printf("共輸入了%d個大寫字母字元\n",dz);33     printf("共輸入了%d個其他字元\n",dz);35     return 0;37   }

 2、輸出九九乘法表

1*1=1,

 2*1=2,2*2=4

 3*1……

 實現代碼:

 1  int main(){ 3    for (int i=1; i<=9; i++) { 5       for (int j=1; j<=i; j++) {7         printf("%dx%d=%d\t\t",i,j,i*j);          }11        printf("\n");13     }15      return 0;   17   }

3、輸出1~100的所有質數 (質數:即除1以外只能被1和它本身整除的數)

 實現代碼:

 1 int main(){ 3    for (int i=1; i<=100; i++) { 5       for (int j=1; j<=i; j++) { 7          if(j==1)9            continue;11          if(i%j==0)13          {15             if(i!=j)17              {19                //printf("%d不是質數\n",i);21                  break;23              }25              else27              {29                printf("%d是質數\n",i);31                break;33              }35             }37         }39      }41     return 0;43 } 

4、一球從 100 米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在第10 次落地時,共經過多少米

 實現代碼:

 1   int  main(){ 3       float hight=100,num=10,sumh=0; 5         for (int i=1; i<=num; i++) { 7           sumh+=hight; 9           hight/=2;11           printf("第%d次回落(%.1f)米\n",i,hight);13        }15       printf("總共經過(%.1f)米",sumh);19       return 0;21    }

5、使用輾轉相除求兩個數的最大公約數

  實現代碼:

 1   int main(){ 3    //(28,35)=(35,28)=(28,7)=0 5     int m,n,temp,rst; 7     printf("請輸入兩個數字:\n"); 9     scanf("%d %d",&m,&n);11     while(m%n!=0){13         if(m%n==m)15         {17            temp=m;19             m=n;21             n=temp;23             rst=m%n;25             printf("m=%d,n=%d\n",m,n);27         }else {29             rst=m%n;31             m=n;33             n=rst;35             printf("m=%d,n=%d\n",m,n);37         }39     }40     printf("%d",n);41     return 0;42  }

6、將一個正整數分解質因數。例如:輸入90,列印出90=2*3*3*5

 實現代碼:

 1 int main(){ 2     int v; 3     scanf("%d",&v); 4     printf("%d=",v); 5     for (int i=2; i<=v; i++) { 6         while (v%i==0) { 7             if(i<v) 8                printf("%d*",i); 9             else10                printf("%d",i);11            v/=i;12         }13     }14     return 0;15   }

7、流程式控制制(for求階乘的和 )輸入n(int類型),列印1!+2!+3!+4!+5!+....+n!的值

 實現代碼:

 1  int main(){  2     //例如 5的階乘和=1*1 +2*2 +3*3*3+ 4*4*4*4 +5*5*5*5*5 3     int n,temp=0,sum=0; 4     scanf(“%d”,&n); 5     for (int i=1; i<=n; i++) { 6         temp=1; 7         for (int j=1; j<=i; j++) { 8                temp*=i; 9         }10         sum+=temp;11     }12     printf("sum=%d",sum);   13     return 0;  14 }

8、整數逆序輸出, 例如輸入一個整數12345,輸出54321

 實現代碼:

 1 int main(){ 2   int a; 3     scanf("%d",&a); 4     while(a/10!=0){ 5         printf("%d ",a%10); 6         a/=10; 7     } 8    printf("%d ",a%10); 9    return 0;10 }

 

9、流程式控制制(for迴圈)輸出字母三角形 輸入一個大寫字母,如F輸出:

          A

        ABA

      ABCBA

    ABCDCBA

  ABCDEDCBA

ABCDEFEDCBA

 實現代碼 :

 1 int main(){ 2     char ch='A'; 3     for (int i=0; i<='F'-ch; i++) { 4         for (int n='F'-ch-i; n>0; n--) { 5              printf(" "); 6         } 7      for (int j=0; j<=i; j++) { 8            printf("%c",ch+j); 9         }10      for (int m=i;m>0 ;m-- ) {11             printf("%c",ch+m-1);12        }13       printf("\n");14     }15     return 0;16  }

10、流程式控制制(for迴圈),輸出字母序列比如輸入:F

 輸出:

 FEDCBA

   EDCBAB

     DCBABC

        CBABCD

           BABCDE

              ABCDEF

  實現代碼:

 1 int main(){ 2     char sh,nsh,bsh; 3     printf("請輸入一個字元:"); 4     scanf("%c",&sh); 5     bsh=sh; 6      int len=sh-'A'; 7        for (int i=0; i<=len; i++) { 8            sh=bsh-i; 9            //nsh=bsh-len+1;10            for (int j=1; j<=i; j++) {11                printf(" ");12            }13             for (int n=i; n<=len; n++) {14                printf("%c", sh--);15            }16            nsh=sh+2;17            for (int m=0; m<i; m++) {18                printf("%c", nsh++);19            }20         printf("\n");21     }22     return 0;23  }

 11、 輸入一個日期年月日, 計算這一天是一年中的第幾天(考慮閏年)     

 實現代碼:

 1 int main(){ 2  int year,month,day,total=0; 3    scanf("%d%d%d",&year,&month,&day); 4     if (year<=0) 5         printf("請輸入正確年份。"); 6     for (int i=1; i<month; i++) { 7      switch (i) { 8              case 1: 9              case 3:10              case 5:11              case 7:12              case 8:13              case 10:14              case 12:15               total+=31;16             break;17          case 4:18          case 6:19          case 9:20          case 11:21              total+=30;22              break;23          case 2:24              if ((!(year%4)&&year%100)||!(year%400)) 25                  total+=29;26              else27                 total+=28;28             break;29         }30     }31     total+=day;32     printf("%d年的第%d天",year,total);33     return 0;34 }

 12、猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以後每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。

實現代碼:

 int main(){       //分析: 第十天 1  第九天:4  第八天:10   第七天:22    int sum=1,i,index=10;    for(i=1;i<=9;i++)    {        printf("第%d天有桃%d個\n",index,sum);        sum=(sum+1)*2;        index--;    }    printf("猴子共摘了%d個桃子。\n",sum);    return 0; }

 

 

 

相關文章

聯繫我們

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