码迷,mamicode.com
首页 > 移动开发 > 详细

IOS阶段学习第四天笔记(循环)

时间:2015-06-21 18:22:17      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:

                                        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     else
23         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              else
27              {
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             else
10                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,len=0;
 3     int arr[100];
 4     printf("请输入数字:");
 5     scanf("%d",&a);
 6     while (a/10>0) {
 7         arr[len]=a%10;
 8         a/=10;
 9         len++;
10      }
11     arr[len++]=a%10;
12     for (int i=0; i<len; i++) {
13         printf("%d",arr[i]);
14     }
15      return 0;
16  }

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  }

 

  

 

IOS阶段学习第四天笔记(循环)

标签:

原文地址:http://www.cnblogs.com/ChinaKingKong/p/4592186.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!