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培训期待与您交流! ---------------------------------