C语言复习4_while循环

1、while循环

循环三要素:

1)、循环变量的初值

2)、循环变量的判断

3)、循环变量的更新

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i = 0;
    while(i<=10)
    {
        printf("第%d遍
",i);
        i++;
    }
    return 0;
}

小练习1:使用循环计算1-100的累加和

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i = 1;
    int sum = 0;
    while(i<=100)
    {
        sum += i;
        i++;
    }
    printf("%d
",sum);
    return 0;
}

小练习2:使用循环实现三次密码输入错误退出系统

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i = 0;  //循环变量
    int password;   //密码
    while(i<3)
    {
        printf("请输入密码:");
        scanf("%d",&password);
        if(password!=123456)
        {
            printf("密码输入错误,当前输入第%d次密码!
",i+1);
        }
        else if(password==123456)
        {
            printf("密码输入成功!
");
            break;
        }
        if(i==2)
        {
            printf("密码输错三次,系统强制退出!
");
            exit(0);
        }
        i++;
    }

    return 0;
}

这里有几个要注意的地方:

1)、加入了当密码输入正确就退出的判断机制;

2)、if...else if....else if...else...这种结构,一旦里面有一个符合条件,就不会继续下面的判断了,所以在

判断i是否到2这里,用的是if,而不是else if,因为第三次密码输入错误的时候,已经在第一个if里判断过了,就不会在下面的else if里

继续判断了

小练习3:某宝双十一2015年的交易额为800亿,每年递增25%,问按此速度哪年交易额达到2000亿?

#include <stdio.h>
#include <stdlib.h>

int main()
{
    double initSum = 800;  //2015年的交易额
    double increase = 0.25;   //递增率
    int initYear = 2015; //初始年份
    while(1)
    {
        initSum *= 1.25;
        if(initSum>=2500)
        {
            printf("第%d年交易额达到2000亿,此年交易额为%lf
",initYear+1,initSum);
            break;
        }
        initYear++;
    }

    return 0;
}

小练习4:使用循环模拟实现玩家对战

双方初始HP均为100;

每次攻击5-15;

HP最先到零或以下的被KO

#include <stdio.h>
#include <stdlib.h> //标准库
#include <time.h>   //time方法
#include <windows.h>    //Sleep
int main()
{
    srand(time(NULL));
    //rand()函数的取值范围是0-32767
    printf("随机种子:%d
",rand());
    int hp1 = 100,hp2=100; //1p和2p的初始血量
    int att1,att2;//1p和2p每次的攻击
    int i = 0;//对战的轮数
    while(hp1>=0 && hp2>=0)//当两个玩家都活着的时候,才能进行对战
    {
        //默认1p首先攻击
        att1 = rand() % 11+5;
        att2 = rand() % 11+5;
        //玩家1攻击,玩家2掉血
        hp2 -= att1;
        //玩家2攻击,玩家1掉血
        hp1 -= att2;
        if(hp1<=0 && hp2>=0)
        {
            printf("玩家2胜利
");
            break;
        }
        else if(hp1>=0 && hp2<=0)
        {
            printf("玩家1胜利
");
            break;
        }
        printf("************************************
");
        printf("第%d轮:
",i);
        printf("玩家1攻击力:%d,玩家2剩余血量:%d
",att1,hp2);
        printf("玩家2攻击力:%d,玩家1剩余血量:%d
",att2,hp1);
        printf("************************************
");
        i++;
        Sleep(500);//休眠500ms
    }
    printf("游戏结束,玩家1的血量:%d	玩家2的血量:%d
",hp1,hp2);
    return 0;
}
人生苦短,何不用python
原文地址:https://www.cnblogs.com/yqpy/p/10454202.html