黑马程序员-IOS-C语言基础-基本运算

C语言基本运算

--------------------------------------  android培训 java培训 ios培训期待与您交流! ---------------------------------
1,算术运算:加+ 减- 乘* 除/ 取余%(%两侧必须都是整数)
注意点:
<1>  自动类型转换

int a = 10.6;

int b = 10.5 +1.7;

自动将大类型转换为了小类型,会丢失精度

<2>  自动类型提升

int b = 10.5 +10;

将右边的10提升为了double类型

double b = 1.0 /2;

解决除法的精度问题

<3>  强制类型转换

double a = (double)1 /2;

double b = (double)(1 /2);

练习:

#include <stdio.h>

int main()
{
    /*
     //1,当?是什么运算符时,不论整型变量a的值怎么变,结果c都不超过10。int c = a?10;
    //定义变量
    int a = 100;
    int c = a%10;
    printf("%d\n",c );
     //	2,提示用户输入两个整数,并输出两个整数的平均数
    int a , b ;
    //提示用户输入
    printf("请输入两个整数且以空格隔开:\n");
    //接收用户输入的数据
    scanf("%d %d",&a,&b );
    //计算且输出两个整数的平均数
    float c =(a + b)/2.0;
    printf("平均数为:%f\n",c );
     */
    //3,提示用户输入一个时间的秒数,比如500秒就输入500,然后输出对应的分钟和秒,比如500s就是8分钟20秒
    //提示用户输入时间
    printf("请输入一个时间值(秒):\n");
    //接收用户输入的时间
    int time;
    scanf("%d",&time);
    //时间值转换
    int m = time/60;
    int s = time%60;
    printf("%d秒=%d分钟%d秒\n",time,m,s );
    return 0;
}
2,赋值运算 ,复合赋值:a=2+3

3,自增自减;(常量不能进行自增自减)
++  自增运算符。如a++,++a,都等价于a = a+1
++a与a++的区别:int a = 10; int b = ++a,int c = a++;++a是先自身加1再赋值,a++是先赋值,然后再自身加1。
--a与a--同理。
-- 自减运算符。如a--,--a,都等价于a = a-1
4,sizeof:用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。
使用格式:sizeof(变量\常量)、sizeof变量\常量、sizeof(数据类型)
5,关系运算(比较运算)
在C语言中,条件成立称为“真”,条件不成立称为“假”,
因此,判断条件是否成立就是判断条件的真假任何非0值都为只有0才为
6,逻辑运算:(C语言规定: 任何非 0 值都为 只有 0 才为 。因此逻辑与也适用于数值)
<1>逻辑与:使用格式: 条件A && 条件
  只有当条件A和条件B都成立时,结果才为1,也就是“真”;其余情况的结果都为0,也就是“假”。因此,条件A或条件B只要有一个不成立,结果都为0,也就是“假”
  逻辑与的结合方向是“ 自左至右”。

<2>逻辑或:使用格式:条件A || 条件B

如果条件A成立,就不会再去判断条件B是否成立:因为条件A已经成立了,不管条件B如何,“条件A || 条件B”的结果肯定是1,也就是“真”。

当条件A条件B只要有一个成立时(也包括条件A和条件B都成立),结果就为1,也就是“真”;只有当条件A和条件B都不成立时,结果才为0,也就是“假”。

如果条件A不成立,接着再判断条件B是否成立:如果条件B成立,“条件A || 条件B”的结果就为1,即“真”,如果条件B不成立,结果就为0,即“假”。

逻辑或的结合方向是“自左至右”。

<3>逻辑非:使用格式:!条件A   
其实就是对条件A进行取反:若条件A成立,结果就为0,即“假”;若条件A不成立,结果就为1,即“真”。也就是说:真的变假,假的变真。
逻辑非的结合方向是“自右至左”。
<4>优先级:

7,三目运算:
格式:条件?数值1:数值2       条件成立为真时,结果为数值1;条件不成立为假时,结果为数值2。
练习:
#include <stdio.h>
//三目运算  条件?数值1:数值2
int main()
{
    /*
    //当条件成立时及5>3为真,a的值为100
    int a = 5>3?100:10;
    //当条件不成立时及1>3为假,b的值为10
    int b = 1>3?100:10;
    printf("a的值为:%d\nb的值为:%d\n",a ,b );
    */
    //计算两个整数之间的最大值
    int x = 100;
    int y = 1000;
    int z = x>y?x:y;
    printf("最大值是:%d\n",z);
    return 0;
}


--------------------------------------  android培训 java培训 ios培训期待与您交流! ---------------------------------



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值