C++顺序结构

顺序结构

程序中的语句从上到下依次执行,每条语句都执行1次。

一般流程

例:求梯形面积

输入梯形的上底、下底、高分别是a、b、h,请设计一个算法求他的面积(结果保留2位小数)。

?

1

2

3

4

5

6

7

8

9

10

#include <bits/stdc++.h>

using namespace std;

int main(){

    int a, b, h;

    double s;

    scanf("%d%d%d", &a, &b, &h);

    s = (a+b) * h / 2.0;

    printf("%.2lf", s);

    return 0;

}

这道题目,计算处理部分可以代入公式;对于没有公式的题目,需要自己列出数学关系式再求解。

运算符

为了更好地调用计算机的计算能力,我们需要学会更多的运算符!

运算规则

1、优先级

一般地,算术 > 关系 > 逻辑 > 位运算

当然,有特殊情况,比如左移右移比关系运算符优先,个别位运算符比逻辑运算符优先。

因此,在不确定优先级的情况下,加小括号!

2、类型转换

运算时转换:当两个数据进行运算的时候,如果类型不同,会先自动转成相同类型:

char

int

double

long long

float

不难发现,按照箭头方向进行类型转换,精度丢失最少。

赋值时转换

int a = 2.5;

那么最终a的值是2,因为int无法保存小数部分。

强制转换

char a = (char)65;

那么变量a保存的是字符'A'。

常用函数

调试代码

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

//为什么说比较两个浮点数是否相等是不安全的

#include <stdio.h>

#define lld I64d

int main(){

    int a;

    long long b;

    char c;

    float d;

    double e;

    a = 1;

    b = a++;

    b = ++a;

    a = 1 + 2 << 2;

    a = 1 + 2 << 2 - 1;

    a = 12345678910;// runtime error

    b = 12345678910;

    a = 12345678;

    b = 1;

    a = b || ++b;

    a = 0 && ++b;

    a = b && ++b;

    a = 3==3<5;

    a = 3<5==1;

    a = 1==3<5;

    a = 3==3==1;

    a = 1 < 2 < 3;

    a = 3 > 2 > 1;

    b = 1;

    /*a = 2;

    b = 3;

    a = ab;

    a = (a+b*[a+b]) * 2;*/

    d = 4 / 3;

    d = 4.0 / 3;

    d = 1.0 * 4 / 3;

    d = 1.23456789;

    e = 1.23456789;

    c ='a';

    //c = "a";

    //scanf("%d%lld%c", &a, &b, &c);

    //printf("%d %lld %c %.9f %.9lf\n", a, b, c, d, e);

    return 0;

}

?

1

2

3

4

5

6

7

8

#include <bits/stdc++.h>

using namespace std;

int main(){

    float a=123456789123456789;

    double b=123456789123456789;

    printf("%.1f\n%.1lf", a, b);

    return 0;

}


版权声明:本文为m0_60950850原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。