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


    iOS学习(C语言)知识点整理笔记

     一、分支结构

    1、分支结构分为单分支 即:if( ){ } ;多分支 即:if( ){ }else{ }  两种

    2、单分支 if表达式成立则执行{ }里的语句;双分支 if表达式不成立 则执行else{ }里面的语句

    3、字符串的输出系统会从数组地址一直打印到字符 ‘’为止,如果没有正确初始化,可能会打印出数组外的信息

    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 ",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())!='
    ') {
     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个数字字符
    ",sz);
    29     printf("共输入了%d个小写字母字符
    ",xz);
    31     printf("共输入了%d个大写字母字符
    ",dz);
    33     printf("共输入了%d个其他字符
    ",dz);
    35     return 0;
    37   }

     2、输出九九乘法表

    1x1=1,

     2x1=2,2x2=4

     3x1=3,3x2=6,3x3=9

     4x .....

     实现代码:

     1  int main(){
     3    for (int i=1; i<=9; i++) {
     5       for (int j=1; j<=i; j++) {
    7         printf("%dx%d=%d		",i,j,i*j);
              }
    11        printf("
    ");
    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不是质数
    ",i);
    21                  break;
    23              }
    25              else
    27              {
    29                printf("%d是质数
    ",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)米
    ",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("请输入两个数字:
    ");
     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
    ",m,n);
    27         }else {
    29             rst=m%n;
    31             m=n;
    33             n=rst;
    35             printf("m=%d,n=%d
    ",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;
     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("
    ");
    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("
    ");
    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              else
    27                 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个
    ",index,sum);
            sum=(sum+1)*2;
            index--;
        }
        printf("猴子共摘了%d个桃子。
    ",sum);
        return 0;
     }

     

     

     

  • 相关阅读:
    4 MyBatis动态SQL之trim元素|转
    2 MyBatis动态sql之where标签|转
    websql
    请求相关注意
    axios
    混淆器
    linux查看内存情况
    【Linux】查看系统内存占用
    Vim与ctags/cscope
    Linux初始root密码设置规则修改
  • 原文地址:https://www.cnblogs.com/ChinaKingKong/p/4592186.html
Copyright © 2020-2023  润新知