C语言笔记 3

表达式


一个表达式是一系列运算符和算子的组合,用来计算一个值

amount = x * (1 + 0.033) * (1 + 0.033) + (1*0.033);

total = 57;

count = count + 1;

value = (min / 2) * lastValue;

运算符 

  • 运算符(operator)是指进行运算的动作

eg.“+”,“-”

  • 算子(operand)是指参与运算的值,可能是常数,可能是变量,也可能是一个方法的返回值

eg.        a        =        b        +        5

        a,b,5  算子

        =,+ 运算符

 计算时间差

输入两个时间,每个时间分别输入小时和分钟的值,然后输出两个时间的差

  • 当思考一个问题如何用程序来解决的时候
  1. 程序里要有什么样的变量,这些变量怎么表达这些数据,怎么读取用户数据
  2. 有数据后怎么计算

int hour1, minute1;

int hour2, minute2;

scanf("%d %d", &hour1, &minute1);

scanf("%d %d", &hour2, &minute2);

变量 hour1,hour2,minute1,minute2

计算 如果直接分别减,会出现分钟错位的情况 

        >>小时×60+分钟 形成以分钟为单位的时间数据

        >>对结果取余,分别得到小时和分钟

int hour1, minute1;

int hour2, minute2;

scanf("%d %d", &hour1, &minute1);

scanf("%d %d", &hour2, &minute2);

int t1 = hour1 * 60 + minute1;

int t2 = hour2 * 60 + minute2;

int t = t2-t1;

printf("时间差是 %d小时%d分。", t/60, t%60);

运算符优先级 


优先级运算符运算结合关系举例
1+单目不变自右向左a*+b
1-单目取负自右向左a*-b
2*自左向右a*b
2/自左向右a/b
2%取余自左向右a%b
3+自左向右a+b
3-自左向右a-b
4=赋值自右向左a=b

单目 只有一个算子

        eg.-a表示负a

双目 有两个算子

赋值运算符

  • 赋值也是运算,也有结果
  • a=6的结果是a被赋予的值,也就是6
  • a=b=6        >>        a=(b=6)

嵌入式赋值

int a = 6;

int b;

int c = 1 + (b=a);

  • 不利于阅读
  • 容易产生错误 

结合关系

  • 一般自左向右

  • 单目+-和赋值=自右向左

result = a = b + c; 

result = 2;

result = (result = result * 2) * 6 * (result = 3 + result);

不容易阅读和理解,会造成误解,要避免这样复杂的表达式 

求平均值

交换变量


交换两个变量

int a = 6;

int b = 5;

期望:a>>5    b>>6

 程序是按步进行的:程序表达的是顺序执行的动作,而不是关系

   eg.a=b;               >>a=b=5, b=5

        b=a;               >>a=5, b=a=5

        是依次执行的,结果使a,b都得到b原来的值

方法:引入“空变量”

        用一个临时变量做交换时临时存放的地方(一种套路,靠阅读积累)

#include<stdio.h>
int main()
{
    int a=5;
    int b=6;
    int t;
    t=a;
    a=b;
    b=t;
    printf("a=%d,b=%d\n", a,b);
    return 0;
}

 

复合赋值和递增递减


复合赋值

  • 5个算术运算符可以和赋值运算符结合起来,形成复合赋值运算符

        “+=”、“-=”、“*=”、“/=”和“%=”

        eg.total += 5        >>        total = total + 5

  • 两个运算符中间不要有空格

ex,  total += (sum+100)/2;     >>      total = total + (sum+100)/2;

        total *= sum+12;            >>      total =total*(sum+12);

 递增递减运算符

“++”和“--”是两个很特殊的运算符,他们是单目运算符,这个算子还必须是变量。他们的作用是给这个变量+1或-1

(小延申:C++名字的由来)

count++;  <<>>  count += 1;  <<>>  count=count + 1;

前缀后缀

  • ++和--可以放在变量前(前缀形式),也可以放在变量后(后缀形式)
  • a++的值是a加1以前的值,而++a的值是加了1以后的值,无论怎样,a的值都加1
表达式运算表达式的值
count++count加1count原来的值
++countcount加1count+1以后的值
count--count减1count原来的值
--countcount减1count-1以后的值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值