转载

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     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  }
正文到此结束
Loading...