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
刘备败了

*/

调试

设置断点。

单步调试。




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


相关文章
|
存储 C语言 C++
【c语言】运算符汇总(万字解析)
今天博主跟大家分享了c语言中各种操作符的功能、使用方法以及优先级和结合性,并且与大家深入探讨了表达式求值的两个重要规则--算数转换和整形提升。学习这些知识对我们的C语言和C++学习都有着极大的帮助。
905 2
|
10月前
|
人工智能 Java 程序员
一文彻底搞清楚C语言的运算符
本文详细介绍了C语言中的各类运算符,包括算术、关系、逻辑、位运算符、赋值、三目运算符及sizeof,帮助读者深入理解其用法与特性。君志所向,一往无前,希望在成长的路上有你相伴!
1006 2
一文彻底搞清楚C语言的运算符
|
10月前
|
人工智能 Java 程序员
一文彻底搞清楚C语言的循环语句
本文介绍了C语言中的三种循环语句:`while`、`do-while`和`for`,并详细解释了它们的语法格式、执行流程及应用场景。此外,还讲解了循环控制语句`break`和`continue`的使用方法。希望这些内容能帮助你在编程道路上不断进步,共同成长!
886 0
一文彻底搞清楚C语言的循环语句
|
11月前
|
C语言
【C语言程序设计——循环程序设计】枚举法换硬币(头歌实践教学平台习题)【合集】
本文档介绍了编程任务的详细内容,旨在运用枚举法求解硬币等额 - 循环控制语句(`for`、`while`)及跳转语句(`break`、`continue`)的使用。 - 循环嵌套语句的基本概念和应用,如双重`for`循环、`while`嵌套等。 3. **编程要求**:根据提示在指定区域内补充代码。 4. **测试说明**:平台将对编写的代码进行测试,并给出预期输出结果。 5. **通关代码**:提供完整的代码示例,帮助理解并完成任务。 6. **测试结果**:展示代码运行后的实际输出,验证正确性。 文档结构清晰,逐步引导读者掌握循环结构与嵌套的应用,最终实现硬币兑换的程序设计。
167 19
|
11月前
|
算法 C语言
【C语言程序设计——循环程序设计】求解最大公约数(头歌实践教学平台习题)【合集】
采用欧几里得算法(EuclideanAlgorithm)求解两个正整数的最大公约数。的最大公约数,然后检查最大公约数是否大于1。如果是,就返回1,表示。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。作为新的参数传递进去。这个递归过程会不断进行,直到。有除1以外的公约数;变为0,此时就找到了最大公约数。开始你的任务吧,祝你成功!是否为0,如果是,那么。就是最大公约数,直接返回。
300 18
|
11月前
|
Serverless C语言
【C语言程序设计——循环程序设计】利用循环求数值 x 的平方根(头歌实践教学平台习题)【合集】
根据提示在右侧编辑器Begin--End之间的区域内补充必要的代码,求解出数值x的平方根;运用迭代公式,编写一个循环程序,求解出数值x的平方根。注意:不能直接用平方根公式/函数求解本题!开始你的任务吧,祝你成功!​ 相关知识 求平方根的迭代公式 绝对值函数fabs() 循环语句 一、求平方根的迭代公式 1.原理 在C语言中,求一个数的平方根可以使用牛顿迭代法。对于方程(为要求平方根的数),设是的第n次近似值,牛顿迭代公式为。 其基本思想是从一个初始近似值开始,通过不断迭代这个公式,使得越来越接近。
301 18
|
11月前
|
C语言
【C语言程序设计——循环程序设计】统计海军鸣放礼炮声数量(头歌实践教学平台习题)【合集】
有A、B、C三艘军舰同时开始鸣放礼炮各21响。已知A舰每隔5秒1次,B舰每隔6秒放1次,C舰每隔7秒放1次。编程计算观众总共听到几次礼炮声。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。开始你的任务吧,祝你成功!
238 13
|
11月前
|
存储 C语言
【C语言程序设计——循环程序设计】利用数列的累加和求 sinx(头歌实践教学平台习题)【合集】
项的累加和,一般会使用循环结构,在每次循环中计算出当前项的值(可能基于通项公式或者递推关系),然后累加到一个用于存储累加和的变量中。在C语言中推导数列中的某一项,通常需要依据数列给定的通项公式或者前后项之间的递推关系来实现。例如,对于一个简单的等差数列,其通项公式为。的级数,其每一项之间存在特定的递推关系(后项的分子是其前项的分子乘上。,计算sinx的值,直到最后一项的绝对值小于。为项数),就可以通过代码来计算出指定项的值。对于更复杂的数列,像题目中涉及的用于近似计算。开始你的任务吧,祝你成功!
274 6
|
11月前
|
C语言
【C语言程序设计——循环程序设计】鸡兔同笼问题(头歌实践教学平台习题)【合集】
本教程介绍了循环控制和跳转语句的使用,包括 `for`、`while` 和 `do-while` 循环,以及 `break` 和 `continue` 语句。通过示例代码详细讲解了这些语句的应用场景,并展示了如何使用循环嵌套解决复杂问题,如计算最大公因数和模拟游戏关卡选择。最后,通过鸡兔同笼问题演示了穷举法编程的实际应用。文中还提供了编程要求、测试说明及通关代码,帮助读者掌握相关知识并完成任务。 任务描述:根据给定条件,编写程序计算鸡和兔的数量。鸡有1个头2只脚,兔子有1个头4只脚。
590 5
|
C语言
【C语言】符号优先级详解 -《谁与争锋 ! 》
理解C语言中的运算符优先级和结合性是编写正确代码的关键。本文详细介绍了C语言中的各种运算符、它们的优先级和结合性,并通过示例展示了如何正确使用这些运算符。掌握这些知识,将有助于编写出逻辑严谨、结构清晰的C语言程序。
626 8