c语言运算符优先级与while循环案例

简介:

sizeof可以获取数据类型的内存中的大小(字节)

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

// standared 标准
// input output 输入/输出
// header 头 .h头文件

int main() // 返回int,如果是void表示没有返回
{

    // 逻辑运算符,位运算符
    int num = 8;
    int sizeOfNum = sizeof(num);
    printf("num的内容空间%d\n",sizeOfNum); // 4

    double num2 = 8;
    int sizeOfNum2 = sizeof(num2);
    printf("num的内容空间%d\n",sizeOfNum2); // 8

    return 0;
}

运算符优先级

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

// standared 标准
// input output 输入/输出
// header 头 .h头文件

int main() // 返回int,如果是void表示没有返回
{
    // 算术运算符 + - * / %
    // 关系运算符 > < >= <= == !=
    // 逻辑运算符 && || !
    // 位运算符 & | ^ ~

    int num = 10;
    int result = num++ == 10 && --num == 10;

    /** 等同于
    int result1 = (num++ == 10);
    int result2 = (--num == 10);
    int result = result1 && result2;
    **/

    printf("%d\n",result); // 1

    return 0;
}

老九语录,这道题的思路是这样的,你看对不对?自己在讲解的时候,就渐渐的清晰了。学会问问题,学会讲解问题。

() sizeof ++ --

算术运算符 + - * / %

关系运算符 > < >= <= == !=

&&

||

赋值运算符

while循环

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

int main()
{
    // while循环
    int i = 0;
    while (i<10) {
        printf("第%d遍\n",i);
        i++;
    }

    return 0;
}

while循环

循环三要素,循环变量的初值、判断、更新。也就是i的初值,判断,更新。

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

int main() {
    // 计算1-100的和
    int sum;
    sum = 0;
    //    sum = (1+100) * 50;
    //    printf("1到100的和为:%d\n",sum);

    int i;
    i = 1;
    while (i <= 100) {
        sum = sum + i;
        i++;
    }
    printf("1到100的和为:%d\n",sum);

    return 0;
}

密码输错案例

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

int main() {
    // 使用循环实现三次密码错误,推出系统
    int i = 0;
    int password = 123456;
    int inPassword;


    while (i < 3) {
        printf("请输入密码:\n");
        scanf("%d",&inPassword);
        if (inPassword != password) {
            i++;
            printf("您输错了%d次\n",i);
        }
    }

    return 0;
}
#include <stdio.h>
#include <stdlib.h>

int main() {
    // 某宝15年交易额是800亿,按照每年递增25%,哪一年超过2000
    double trade_money = 800;
    int year = 2015;
    while (trade_money <= 2000) {
        trade_money *= 1.25;
        year++;
        printf("%d年交易额.2%lf\n",year,trade_money);
    }

    printf("某宝在%d年,交易额将超过2000亿,交易额为%.2lf\n",year,trade_money);

    return 0;
}

/*
2016年交易额1000.000000
2017年交易额1250.000000
2018年交易额1562.500000
2019年交易额1953.125000
2020年交易额2441.406250
某宝在2020年,交易额将超过2000亿,交易额为2441.406250
*/

小练习挺有意思的。

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

int main() {
    // 这个很有用,否则rand()会一直41
    srand((unsigned) time(NULL));

    // 使用循环模拟实现玩家对战
    // 双方初始值HP均为100
    // 每次攻击5~15
    // HP最先到0或者以下的被KO
    int liubeiHP = 100;
    int sunquanHP = 100;

    int attack;

    int i = 0;
    while(1) {

        printf("************************************\n");
        i++;
        attack = (5 + rand()%11); // %11取值0-10

        if (attack == 15) {
            // 暴击
            attack *= 2;
        }

        sunquanHP -= attack;
        printf("孙权在第%d回合,受到伤害%d,剩余生命值%d\n",i,attack,sunquanHP);
        if (sunquanHP <= 0) {
            printf("孙权败了\n");
            break;
        }

        attack = (5 + rand()%11);
        if (attack == 15) {
            // 暴击
            attack *= 2;
        }
        liubeiHP -= attack;

        printf("刘备在第%d回合,受到伤害%d,剩余生命值%d\n",i,attack,liubeiHP);
        if (liubeiHP <= 0) {
            printf("刘备败了\n");
            break;
        }

        Sleep(500); // 需要引入<windows.h>


    }



    return 0;
}

/*
************************************
孙权在第1回合,受到伤害8,剩余生命值92
刘备在第1回合,受到伤害5,剩余生命值95
************************************
孙权在第2回合,受到伤害11,剩余生命值81
刘备在第2回合,受到伤害13,剩余生命值82
************************************
孙权在第3回合,受到伤害9,剩余生命值72
刘备在第3回合,受到伤害12,剩余生命值70
************************************
孙权在第4回合,受到伤害14,剩余生命值58
刘备在第4回合,受到伤害8,剩余生命值62
************************************
孙权在第5回合,受到伤害14,剩余生命值44
刘备在第5回合,受到伤害30,剩余生命值32
************************************
孙权在第6回合,受到伤害10,剩余生命值34
刘备在第6回合,受到伤害12,剩余生命值20
************************************
孙权在第7回合,受到伤害6,剩余生命值28
刘备在第7回合,受到伤害13,剩余生命值7
************************************
孙权在第8回合,受到伤害13,剩余生命值15
刘备在第8回合,受到伤害8,剩余生命值-1
刘备败了

*/

调试

设置断点。

422101-20171117004119046-323030734.png

单步调试。




本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/7847823.html,如需转载请自行联系原作者


相关文章
|
1月前
|
Go C语言
爱上C语言:分支与循环(循环篇)
爱上C语言:分支与循环(循环篇)
|
1月前
|
C语言
爱上C语言:分支与循环(分支篇)多个if与if — else if区别
爱上C语言:分支与循环(分支篇)多个if与if — else if区别
|
1月前
|
C语言
【C语言】分支循环第二章2
【C语言】分支循环第二章
|
1月前
|
机器学习/深度学习 C语言
【C语言】分支循环第二章 1
【C语言】分支循环第二章
|
1月前
|
C语言
【C语言】“分⽀与循环第一章:开启创新之门,探索无尽可能性的第一篇章“2
【C语言】“分⽀与循环第一章:开启创新之门,探索无尽可能性的第一篇章“2
|
1月前
|
C语言
【C语言】“分⽀与循环第一章:开启创新之门,探索无尽可能性的第一篇章“1
【C语言】“分⽀与循环第一章:开启创新之门,探索无尽可能性的第一篇章“
|
1月前
|
程序员 C语言
【C语言】C语言运算符优先级详解
【C语言】C语言运算符优先级详解
|
2月前
|
C语言
C语言10🔥:for 循环
C语言10🔥:for 循环
32 0
|
2月前
|
C语言
C语言8🔥:while循环与 do while 循环
C语言8🔥:while循环与 do while 循环
25 0
|
2月前
|
C语言
C语言5🔥:复合赋值,递增递减运算符,局部变量与全局变量
C语言5🔥:复合赋值,递增递减运算符,局部变量与全局变量
26 0