C语言基础知识点(二)三大控制结构

来源:互联网 发布:闹钟软件哪个好 编辑:程序博客网 时间:2024/05/24 15:43

三大控制结构顺序,选择,循环结构。

语句是程序最基本的单位,分号是语句结束的标志。

复合语句是把多个语句有{}栝起来组成的一个整体效果的执行语句,也叫语句块儿;复合语句内的单条语句都要用分号结束。

顺序结构:就是按照语句编写顺序逐句执行

选择结构:

       三种形式1if语句如果条件成立,执行后边的一条语句,如果条件不成立跳过后边的一条语句。

if括号中是条件表达式【表达式结果可以表示为真和假的表达式】)

2.if()else()语句条件成立执行else前边的,不成立执行else后边的

3. if()else if()…else()else if语句相当于if()else()的循环嵌套


switch(判断对象){判断switch括号中的表达式结果跟那个case后的值相等,如果跟某个case后的值相等,则执行该case后的语句。

1.     switch 中表达式和case后的表达式的值只能是整数值 int char枚举都可以转换成整数值

2.     case后的值不能重复。

3.     break 的作用就是用于跳出switch结构。

       case a”:

       语句

       break

循环结构:

for语句比while语句和do-while都要灵活,是一种功能更大、更常用的循环语句,的一般语法格式为:

for(表达式1;表达式2;表达式3) {

循环体代码 }

其中,表示式可以省略,但是分号不可省略。

表达式1:一般为赋值表达式,给控制变量赋初值;int i = 0;

表达式2:关系表达式或逻辑表达式,循环控制条件;i < 5;

表达式3:一般为赋值表达式,给控制变量增量或减量。i++;

表达式可以省但是分号不可以省。循环控制条件省略后就会成为一个死循环。

for(;常数值;;)也是死循环;


while 循环语句,程序设计中一种基本循环模式,当满足条件时进如循环,不满足跳出

do while while循环的变体。在检查条件是否为真之前,该循环首先会之执行以此代码块儿,然后检查条件是否为真,如果为真的话,就会重复这个循环。至少会执行一次

 

当。。。。时使用while循环

直到。。。时使用do  while循环 while语句后边要加 ;。


这个语句会陷入死循环,while后边的语句不会执行。

 

break 1、用于跳出循环,只能终止break所在的那层循环。当满足某个条件时直接跳出循环,执行下边的语句(循环外边的语句)。2、跳出switch结构。\td打印6个格

continue 终止当前这一次循环,continue之后的语句就不再执行了,直接执行下一次循环。

#include <stdio.h>

#include <math.h>

int main(int argc,const char * argv[]) {

//    int a ;

//    scanf("%d",&a);

//    int array[5];

//    int i=0;

//    int sum=0;

//    while (a>0) {

//        printf("%d\n",a%10);

//        array[i]=a%10;

//        i++;

//        a=a/10;

//    }

//    for (int k=0; k<5; k++) {

//        printf("%d",array[k]);

//    }

//    for (int j=0; j<5; j++) {

//       sum+= array[j]*pow(10, j);

//        

//    }

//    printf("%d",sum);

    //倒序输出

//    int a;

//    int b;

//    int sum=0;

//    scanf("%d",&a);

//    while (a>0) {

//        b= a%10;

//        sum=sum*10 + b;

//        a=a/10;

//    }

//    printf("%d",sum);

//    return 0;

    //倒序输出

//    int a;

//    int x;

//    int sum;

//    int i=1;

//    for (i=1;i<=10000; i++) {

//        a=i;

//        sum=0;

//        while (a) {

//            x=a%10;

//            sum=sum*10 +x;

//            a=a/10;

//        }

//       

//        if (sum==i) {

//        printf("%d\n",i);

//        

//     }

//   

//    }

    //还没算完了循环

//    int a,i=1,sum,x;

//    while (i<10000) {

//        a=i;

//        sum=0;

//        while (a>0) {

//            x=a%10;

//            sum=sum*10+x;

//            a/=10;

//        }

//        if (sum==i) {

//            printf("%d\n",i);

//        }

//        i++;

//    }

    //水仙花数

//    int a;

//    int x;

//    int s=0;

//    int m;

//    printf("从键盘输入一个三位数\n");

//    scanf("%d",&m);

//    a=m;

//    while (a>0) {

//        x=a%10;

//        s=s+pow(x, 3);

//        a/=10;

//    }

//    if (s==m) {

//        printf("shi su shu \n");

//    }

//    else{

//        printf("bu shi \n");

//    }

//    int i,a,sum;

//    int x;

//    for (i=100; i<=1000; i++) {

//        a=i;

//        sum=0;

//        while (a>0) {

//            x=a%10;

//            sum=sum+pow(x, 3);

//            a/=10;

//        }

//        if (sum==i) {

//            printf("%d\n",i);

//        }

//    }

    //do while循环求平均数

//    int n,count=0,sum=0;

//    do{

//        printf("please enter a number\n");

//        scanf("%d",&n);

//        count++;

//        sum=sum+n;

//    }while(n!=0);

//        if (count==0) {

//            printf("nin meishou shuru shu \n");

//        }

//        else{

//            printf("%d\n",sum*1.0/count);

//        }

//    return 0;

//    int i=0;

//    while (i<10);

//    {

//        printf("%d\n",i);

//        i++;

//    }

    //break 打印乘法口诀

//    int i;

//    for (i=1; i<10; i++) {

//        for (int k=1; k<10; k++) {

//            

//            printf("%d*%d\t",i,k);

//            if(i==k){

//                break;

//            }

//          

//        }

//         printf("\n");

//    }

//continue用法

//    int i;

//    for (i=0; i<100; i++) {

//        printf("%d\n",i);

//        if (i%10==0) {

//           continue;

//        }

//        printf("-------\n");

//    }

//    int i;

//    for (i=0; i<100; i++) {

//        if (i%2!=0) {

//            continue;

//        }

//        printf("%d\n",i);

//    }

    

    //数组中偶数的和

//    int a[10];

//    int sum=0;

//    for (int i=0; i<10;i++) {

//        printf("please enter a number %d\n",i+1);

//        scanf("%d",&a[i]);

//        if (a[i]%2==1) {

//            continue;

//        }

//        sum=sum+a[i];

//    }

//       printf("%d\n",sum);

    //找出数组中最大的数

    int a[5];

    int max;

    for (int i=0; i<5; i++) {

        printf("please enter a number %d\n",i+1);

        scanf("%d",&a[i]);

        }

    max=a[0];

    for (int k=1; k<5; k++) {

        

        if (max<a[k]) {

            max=a[k];

        }

    }

    printf("%10d i\n",max);

   }