A【1-1-9】逻辑运算符

来源:互联网 发布:java编辑工具 编辑:程序博客网 时间:2024/06/08 18:34

练习1:条件运算符(三目运算符)


void main1()
{
  
int x = 5 > 3 ? 4 : 8;
printf("%d",x);
int y = -1 ? 4 : 8;
printf("%d", y);//如果表达式值为0,则为8,否则值为4;
int y = -1 ? 4 : 8;//问:为什么没有把int y = -1当作一体,因为条件运算符优先级高于赋值运算符
//int y = -1 ? 4 : 8; 等价于int y =( -1 ? 4 : 8);
//条件运算符的结合方向为“自右向左”
//举例:
int a = 5, b = 6, c = 7, d = 8;//初始化数据
int z = a > b ? a : c > d ? c : d;//等价于int z = a > b ? a : (c > d ? c : d);
//结果为8
system("pause");
}


练习2:条件运算符除了赋值外还可以执行些语句

void main2()
{
  //表达式1    表达式2    表达式3   
    1 ?system("notepad") :system("calc") ;//表达式1的值为0,执行表达式3,为非0,执行表达式2
0 ? system("notepad") : system("calc");
-1 ? system("notepad") : system("calc");
system("pause");
}

练习3:游戏设定概率,80%输,20%赢

#include<time.h>
#include<string.h>


//做一赌博机例子,让你有80%的概率输,在20%的概率下赢,大家想想,你随便抓一个数你小于80的概率是0.8,大于80的概率是百分之二十
void main3()
{
time_t ts;//设置时间的数据类型
srand((unsigned int)time(&ts));//调用srand()函数,生成随机数种子
int num = rand() % 100+1;//生成一随机数,让在0到100之间,不是0到99之间
printf("\nnum=%d\n",num);
num > 80 ? printf("你赢了") :printf("你输了") ;//想一下,赢的概率大吗?
system("pause");
}

练习4:三目运算符的数据类型转换

void main4()
{
printf("%d", -1 ? 4 : 5);
printf("%d",0?4:5);//值非0,表达式为4,值0,表达式为5
//三木运算符中间会自动完成的数据类型转换
//举例:
int num = 10;
float f1 = 10.9;
printf("%f",num>f1?num:f1);

system("pause");
}

0 0
原创粉丝点击