计算表达式

在线C环境:https://clin.icourse163.org/

 

1.表达式计算

  • ⼀个表达式是⼀系列运算符和算⼦的组合, ⽤来计算⼀个值
  • amount = x * (1+0.033) * (1+0.033) * (1+0.033);
  • total = 57;
  • count  = count +1 ;

2.运算符

  • 运算符(operator)是指进⾏运算的动 作,⽐如加法运算符“+”,减法运算符 “-”。
  • 算⼦(operand)是指参与运算的值,这 个值可能是常数,也可能是变量,还可能 是⼀个⽅法的返回值

2.1

  • int sides = 4;
  • sides = 7;
  • sides = sides +5;  算子

3. 计算

  • result = 12 + 6 / 2;
  • result = (12 + 6) / 2;
  • result = 4 * ((12 – 4) / 2);

4. 计算时间差

输⼊两个时间,每个时间分别输⼊⼩时和 分钟的值,然后输出两个时间之间的差, 也以⼏⼩时⼏分表⽰

#include <stdio.h>

int main() {
    
   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);
   
    return 0;
}
  • hour1*60+minute1---》转换为分钟为单位
  • t/60----->小时的部分;t%60---->分钟

5. 求平均值

#include <stdio.h>

int main() {
 
    int a,b;
    
    scanf("%d %d",&a,&b);
    
    double c=(a + b)/2.0;
    
    printf("%d和%d的平均值=%f\n",a,b,c);
       
    return 0;
}

6.运算符优先级

7. 单目运算符

只有⼀个算⼦的运算符:+、-

8. 赋值运算符

  1. 赋值也是运算,也有结果
  2. a=6的结果是a被赋予的值,也就是6
  3. a=b=6 —> a=(b=6)

9. “嵌⼊式赋值”

int a = 6;

int b;

int c = 1+ (b=a);

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

10. 结合关系

result = a = b = 3 + c;

result = 2;

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

这样的表达式太复杂,不容易阅读和理解,容易造成读程序时的误解。所以,要避免写出这样的复杂表达式来的。这个表达式应该被拆成诺干个表达式,然后以明显的正确的顺序来进行计算。

11. 计算复利

  • 在银⾏存定期的时候,可以选择到期后⾃ 动转存,并将到期的利息计⼊本⾦合并转 存。如果1年期的定期利率是3.3%,那么 连续⾃动转存3年后,最初存⼊的x元定期 会得到多少本息余额?
  • 本息合计 = x(1+3.3%)^3
#include <stdio.h>

int main() {
 
    int x;
    
    scanf("%d",&x);
    
    double amount = x * (1 + 0.033) * (1 + 0.033) * (1 + 0.033);
    
    printf("%f", amount);
       
    return 0;
}

要计算任意年以后的本息金额,就需要做(1+0.033)^n的计算

#include <stdio.h>

int main() {
 
       int year,i;
    double money,total=0,rate=0.033;

    printf("请输入您的本金:\n");
    scanf("%lf",&money);

    printf("请输入您要存的年数:\n");
    scanf("%d",&year);

    for(i=1;i<=year;i++)
    {
        total=(1+rate)*money;  //该年的本息和
        money=total;            //下年的本金换算成本年的本息和
    }

    printf("%d年后,你的本息和为%f。\n",year,total);

    return 0;
}



/*
这是一个计算复利的程序

变量
 本金money
 每年利率rate
 多少年year
 多少年后的本息合计total

初始化rate=0.033
输入本金数
将其存入money
循环

*/

12.交换两个变量

如果已经有

int a = 6;

int b = 5;

如何交换a、b两个变量的值?

程序是按步执⾏的

程序表达的是顺序执⾏的动作,⽽不是关系a=b; b=a;,是依次执⾏的,结果使得a和b都得到b原来的值

交换

int t = a;

a = b;

b = t;

13.复合赋值

  • 5个算术运算符,+ - * / %,可以和赋值运 算符“=”结合起来,形成复合赋值运算符 :“+=”、“-=”、“*=”、“/=”和“%=”
  1. total += 5;
  2. total = total + 5;
  • 注意两个运算符中间不要有空格

复合赋值

  • total += (sum+100)/2;
  1. total = total + (sum+100)/2;
  • total * = sum+12;
  1. total = total*(sum+12);
  • total /= 12+6;
  1. total = total / (12+6);

14.递增递减运算符

“++”和“--”是两个很特殊的运算符,它们 是单⺫运算符,这个算⼦还必须是变量。 这两个运算符分别叫做递增和递减运算符, 他们的作⽤就是给这个变量+1或者-1。

count++;

count += 1;

count = count + 1;

前缀后缀

++和--可以放在变量的前⾯,叫做前缀形 式,也可以放在变量的后⾯,叫做后缀形 式。

 a++的值是a加1以前的值,⽽++a的值是加 了1以后的值,⽆论哪个,a⾃⼰的值都加 了1了。

 ++--

  • 这两个运算符有其历史来源
  • 可以单独使⽤,但是不要组合进表达式
  1. ++i++ -->?
  2. i++++ —>?
  • a = b+=c++-d+--e/-f
原文地址:https://www.cnblogs.com/hechunfeng/p/15643963.html