课时3 循环语句

一般用for

一、用while语言循环做数学运算

方法
在这里插入图片描述
例一 求2+4+6+···+100

#include<stdio.h>
int main()
{
    
    
    int n=1, sum=0, a=2;//a=第一项的值
    while(n<=50)//一共有50项
    {
    
    
        n=n+1;
        sum=sum+a;
        a=a+2;//前一项比后一项多2
    }
    printf("%d\n", sum);
    return 0;
}

例二 求阶乘的和 (1!+2!+···+20!)

#include<stdio.h>
int main(void)
{
    
    
    int n=1, sum=0, a=1;
    while(n<=20)//共20项
    {
    
    
        n=n+1;
        sum=sum+a;
        a=a*n;//前一项和后一项的关系
    }
    printf("%d",sum);
    return 0;
}

二、用while语句循环

例一 猴博士纳妃,一堆母猴排队一个接一个表演,猴博士共看300分钟,请统计猴博士看了多少只母猴

1.先写框架,一定会用到while循环,并且要输出母猴的数量

#include<stdio.h>
int main(void)
{
    
    
    while()
    {
    
    

    }
    printf("猴博士看了%d只母猴\n",n);
    return 0;
}

2.确定条件,300分钟
可以定义一个变量为总时间,循环条件为<=300分钟

#include<stdio.h>
int main(void)
{
    
    
    float alltime;//时间不一定是整数
    while(alltime<=300)
    {
    
    

    }
    printf("猴博士看了%d只母猴\n",n);
    return 0;
}

3.还需要定义一个变量为每只母猴表演的时间time,刚开始总时间为0

#include<stdio.h>
int main(void)
{
    
    
    float alltime=0;
    float t;
    int n=0;//要求母猴的数量
    while(alltime<=300)
    {
    
    
       // printf("Input\n");
        scanf("%f",&t);
        alltime=alltime+t;
        n=n+1;//每看一次母猴的数量加一
    }
    printf("猴博士看了%d只母猴\n",n);
    return 0;
}

4.检查开头结尾
结尾有问题,如果有一只猴子表演完总时间为300分钟,符合<=300,还会进行下一次循环,但其实表演到300时就停止了。条件应该改为alltime<300
注:我们是先读入时间,然后再加到总时间里的

最终代码

#include<stdio.h>
int main(void)
{
    
    
    float alltime=0;
    float t;
    int n=0;
    while(alltime<300)
    {
    
    
        printf("请输入第%d只母猴的表演时间\n",n+1);
        scanf("%f",&t);
        alltime=alltime+t;
        n=n+1;
    }
    printf("猴博士看了%d只母猴\n",n);
    return 0;
}

例二、请编程输出100~300之间(包括100与300)的整数

#include<stdio.h>
int main(void)
{
    
    
    int n=100;
    while(n<=300)
    {
    
    
        printf("%d\n", n);
        n=n+1;
    }

    return 0;
}

也可以是n=99;这样把n=n+1放在printf前面,并且让n<99 也可以保证输出的第一个值为100,

三、用break语言提前终止循环

(有多个限制条件时会用到)

例一、**例一 猴博士纳妃,一堆母猴排队一个接一个表演,猴博士共看300分钟,并且猴博士只愿意看100只母猴,请统计猴博士看了多少只母猴

加了if(n>=100)这个条件,这样只有同时满足两个条件时才会继续循环


#include<stdio.h>
int main(void)
{
    
    
    float alltime=0;
    float t;
    int n=0;
    while(alltime<300)
    {
    
    
        printf("请输入第%d只母猴的表演时间\n",n+1);
        scanf("%f",&t);
        alltime=alltime+t;
        n=n+1;

        if(n>=100)
        {
    
    
            break;
        }

    }
    printf("猴博士看了%d只母猴\n",n);
    return 0;
}


法二

while(alltime<300&&n<100)
{
    
    
    n=n+1;//这里n先+1后面就输出第n只即可
    printf("请输入第%d只母猴的表演时间\n",n);
}

四、用continue语句提前结束本次循环

continue只是结束本次循环,并不跳出整个循环
例一、请编程输出100~300之间(包括100与300)不能被4整除的整数

#include<stdio.h>
int main(void)
{
    
    
    int n=99;
    while(n<300)
    {
    
    
        n=n+1;

        if(n%4==0)//如果可以被4整除这个数就不输出了,然后进行下一次循环再判断
        {
    
    
            continue;
        }

        printf("%d\t",n);
    }

    return 0;
}

五、do…while
六、for

猜你喜欢

转载自blog.csdn.net/weixin_51676760/article/details/112302376