黑马程序员——C语言——基础运算

来源:互联网 发布:mac有必要用office 编辑:程序博客网 时间:2024/04/30 12:25

———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———

一、 算术运算

1、算数运算包括了+、-、*、/、以及%,运算顺序为优先级由高到低、顺序从左至右。

2、/为除运算,如3/2=1,整数除以整数,结果还为整数。

3、%为取余运算,如-3%2=-1,运算结果的正负只与左边的数字正负有关。
4、注意点

  1)自动类型转换

int a = 2.3;    (结果为a == 2)

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

2) 自动类型提升

int a = 2.3 + 4;   (结果为a == 6)

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

3 ) 强制类型转换

double a = (double)1 / 2;    (结果为a == 0.500000)

double b = (double)(1 / 2); (结果为b == 0.000000)

5、练习题

提示用户输入一个时间秒数,比如500秒就输入500,然后输出对应的分钟和秒,比如500s就是8分钟20秒

#include <stdio.h>

int main()

{

printf("请输入一个时间秒数");  // 提示输入

int a;     // 定义一个整型变量,用来存储输入的秒数

scanf("%d",&a);     // 接收输入

int min = a / 60;     // 定义一个整型变量,用来存储分钟数

int sec = a % 60;      // 定义一个整型变量,用来存储秒钟数

printf("%d秒就是%d分钟%d秒\n", a, min, sec);

return 0;

}

 

二、 自增自减

1. 简单使用

++  自增运算符,如a++,++a,都等价于a = a+1。

- -   自减运算符,如a--,--a,都等价于a = a-1。

5++是错误的


2. ++a和a++的区别

a++为先计算再自加1,++a为先自加1再计算。

int main()
{
int a = 5;

int b = a++;      // a == 6, b == 5  

       int c = 5;

       int d = ++c;     // c == 6, d == 6    

return 0;



三、 sizeof

1、作用:计算数据类型所占用的存储空间。

2、基本形式

 sizeof( 变量\常量 )

sizeof 变量\常量

sizeof( 数据类型 )

 不能是sizeof 数据类型      举例如下:

#include <stdio.h>

int main()

{

int size = sizeof (int);

printf("%d\n", size);

}

 

四、 关系运算

1、真假:C语言中,任何非0值都为只有0才为

2、关系运算符的运算结果只有2种:如果条件成立,结果就为1,也就是“真”;

如果条件不成立,结果就为0,也就是“假”。

3、使用注意

关系运算符中==、!=的优先级相等,<、<=、>、>=的优先级相等,且前者的优先级低于后者;

关系运算符的结合方向为“从左往右”;

关系运算符的优先级小于算术运算符。


五、 逻辑运算

1、&& 逻辑与

1) 使用格式: 条件A && 条件B

2) 运算过程: 

1>条件A不成立,运算停止,结果为0,即为假;

2>条件A成立,再判断条件B是否成立:若不成立,则结果为0,即为假;

若成立,则结果为1,即为真。

2、|| 逻辑或

1) 使用格式: 条件A || 条件B

2)运算过程:

1>条件A成立,运算停止,结果为1,即为真;

2>条件A不成立,再判断条件B是否成立:若成立,则结果为1,即为真;

若不成立,则结果为0,即为假。

3、! 逻辑非

1) 使用格式: !条件A
2) 运算过程:
1>条件A成立,结果为0,即假;
2>条件A不成立,结果为1,即真。


 4、注意

1) 优先级

除了非(!)的优先级大于算术运算外,算数运算>关系运算>逻辑运算。

2) 逻辑适用于数值

例如5 && 4的结果为1,即为真。

 

六、 三目运算符

1、使用格式: 条件 ? 数值1 : 数值2;
2、运算过程
若条件成立,则返回数值1;若条件不成立,则返回数值2。
3、范例:比较a与b的大小,并输出最大值

#include <stdio.h>
int main()
{
int a = 5;
int b = 10;
int c = a > b ? a : b;
printf("%d\n",c);
return 0;
}
4、思维扩展:比较啊a、b、c的大小,并输出最大值

#include <stdio.h>
int main()
{
int a = 5;
int b = 10;
int c = 2;
int maxa_b = a > b ? a : b;      // 先找出a和b的较大值,并赋值给变量maxa_b
int max = c > maxa_b ? c : maxa_b;      // 比较c和maxa_b的大小,找出最大值
printf("%d\n",max);
return 0;
}


———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———


 

0 0