2021-04-30 c++ learning day4

28.程序流程结构——循环结构——while

while(循环结束条件){需要循环执行的语句}   //注意,避免死循环

demo:猜数字

代码:

int main() {

//系统生成随机数

  int num = rand()%100 +1; //生成1~100的随机数

  std::cout<<"系统已经生成随机数"<<std::endl;

  //玩家猜测

  int val =0;

//循环体

  while (1){

std::cout<<"请输入猜测的数字:"<<std::endl;

      std::cin>>val;

      //提示玩家

      if (val >num){

std::cout<<"猜测过大"<<std::endl;

      }else if (val < num){

std::cout<<"猜测过小"<<std::endl;

      }else{

std::cout<<"恭喜您猜对了"<<std::endl;

break;

      }

}

}

运行结果:

系统已经生成随机数

请输入猜测的数字:

50

猜测过大

请输入猜测的数字:

42

恭喜您猜对了

注意,此处生成的随机数为伪随机,多次运行后即可发现每次生成的数都是42。

如何使伪随机数变成真正的随机数?

1.引入头文件 

#include <ctime>

2.添加随机数种子 作用:利用当前系统的时间生成随机数,防止每次随机数都一样

srand((unsigned int)time(NULL));



28.程序流程结构——循环结构——do...while循环

do{要循环执行的语句}while(循环结束条件)

do...while和while的区别:

do...while会先执行一次循环语句

demo:水仙花数

水仙花数是指一个三位数,其每一位上的数字的三次幂之和等于它本身

利用do...while语句,求出所有三位数中的水仙花数。

代码:

int main() {

//所有三位数:100~999

  //百位数:数字/100 十位数:(数字%100)/10 个位数:(数字%100)%10

  //判断:个位数三次方+十位数三次方+百位数三次方 = 数字本身,输出

  int num =100;

  int a =0;//百位数

  int b =0;//十位数

  int c =0;//个位数

    do {

a = num/100;

        b = (num%100)/10;

        c = (num%100)%10;

        if (a*a*a + b*b*b + c*c*c == num)

std::cout<<num<<"是水仙花数"<<std::endl;

        num++;

    }

while (num <1000);

}

运行结果:

153是水仙花数

370是水仙花数

371是水仙花数

407是水仙花数



29.程序流程结构——循环结构——for循环

格式:  for(起始表达式;条件表达式;末尾循环体){循环语句}

for循环本质上和while、do...while类似,只是结构更为清晰代码量更少

demo:敲桌子

从1数到100.如果数字个位含有7,或者10位含有7,或者该数字是7的倍数,我们打印敲桌子,其余数字直接打印输出。

代码:

int main() {

int a =0;//个位

    int b =0;//十位

    for (int i =1; i <101; i++) {

a = i%10;

        b = i/10;

        if (a ==7 || b ==7 || i%7 ==0){

std::cout<<"敲桌子"<<std::endl;

        }else

            std::cout<<i<<std::endl;

    }

}

运行结果:

1

2

3

4

5

6

敲桌子

8

9

10

11

12

13

敲桌子

15

16

敲桌子

18

19

20

敲桌子

22

23

24

25

26

敲桌子

敲桌子

29

30

31

32

33

34

敲桌子

36

敲桌子

38

39

40

41

敲桌子

43

44

45

46

敲桌子

48

敲桌子

50

51

52

53

54

55

敲桌子

敲桌子

58

59

60

61

62

敲桌子

64

65

66

敲桌子

68

69

敲桌子

敲桌子

敲桌子

敲桌子

敲桌子

敲桌子

敲桌子

敲桌子

敲桌子

敲桌子

80

81

82

83

敲桌子

85

86

敲桌子

88

89

90

敲桌子

92

93

94

95

96

敲桌子

敲桌子

99

100


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容