zoukankan      html  css  js  c++  java
  • 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
    ",sizeOfNum); // 4
    
        double num2 = 8;
        int sizeOfNum2 = sizeof(num2);
        printf("num的内容空间%d
    ",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
    ",result); // 1
    
        return 0;
    }
    
    

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

    () sizeof ++ --

    算术运算符 + - * / %

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

    &&

    ||

    赋值运算符

    while循环

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        // while循环
        int i = 0;
        while (i<10) {
            printf("第%d遍
    ",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
    ",sum);
    
        int i;
        i = 1;
        while (i <= 100) {
            sum = sum + i;
            i++;
        }
        printf("1到100的和为:%d
    ",sum);
    
        return 0;
    }
    
    

    密码输错案例

    #include <stdio.h>
    #include <stdlib.h>
    
    int main() {
        // 使用循环实现三次密码错误,推出系统
        int i = 0;
        int password = 123456;
        int inPassword;
    
    
        while (i < 3) {
            printf("请输入密码:
    ");
            scanf("%d",&inPassword);
            if (inPassword != password) {
                i++;
                printf("您输错了%d次
    ",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
    ",year,trade_money);
        }
    
        printf("某宝在%d年,交易额将超过2000亿,交易额为%.2lf
    ",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("************************************
    ");
            i++;
            attack = (5 + rand()%11); // %11取值0-10
    
            if (attack == 15) {
                // 暴击
                attack *= 2;
            }
    
            sunquanHP -= attack;
            printf("孙权在第%d回合,受到伤害%d,剩余生命值%d
    ",i,attack,sunquanHP);
            if (sunquanHP <= 0) {
                printf("孙权败了
    ");
                break;
            }
    
            attack = (5 + rand()%11);
            if (attack == 15) {
                // 暴击
                attack *= 2;
            }
            liubeiHP -= attack;
    
            printf("刘备在第%d回合,受到伤害%d,剩余生命值%d
    ",i,attack,liubeiHP);
            if (liubeiHP <= 0) {
                printf("刘备败了
    ");
                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
    刘备败了
    
    */
    
    

    调试

    设置断点。

    单步调试。

  • 相关阅读:
    路由系统
    快速入门
    IIS7.0下 HTTP 错误 404.15
    关于:TypeConverter 无法从 System.String 转换
    mssql批量刷新多个表的数据
    aspxpivotgrid排序
    .net面试题
    AspxGridView在cell内显示颜色
    AspxGridView 表中的ASPxHyperLink不导出到excel
    C# 网络编程小计 20150202
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/7847823.html
Copyright © 2011-2022 走看看