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

时间:2024-04-17 21:01:13

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

调试

设置断点。

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

单步调试。