• 一些C语言知识


            C语言的内置类型:

            char

            short

            int 

            long

            float

            double

            C99中引入了bool类型,用来表示真假的变量类型,包含true,false。

            这个代码的执行结果是什么?好好想想哦,坑挺多的。

    1. #include
    2. int main()
    3. {
    4. int i = 0;
    5. for(i = 0;i < 10;i++)
    6. {
    7. if(i = 5)
    8. printf("%d ",i);
    9. }
    10. return 0;
    11. }

            你做对了吗?结果是死循环打印5。= 是赋值操作符,== 是判断相等操作符,循环变量 i 在循环内部也进行了修改。

            VS选中语句,按 Tab 键可以一起往后缩进,按 Shift + Tab 键可以一起往前缩进。

            switch语句中case后的表达式只能是整型常量表达式,char 也是属于整型家族的,因为字符存储的时候,存储的是ASCII码。

            VS调试快捷键,F10进入调试,进入调试后按F10一条语句一条语句执行,按F11可以进入函数内部,然后再按F10一条语句一条语句执行,调试起来后,还可以调出监视窗口和内存窗口,帮助监视运行过程中变量的值的变化,还可以看变量在内存中的存储情况。

            注意:只有进入调试之后才能调出这两个窗口。

            三个整数从大到小输出

    1. #include
    2. //三个整数从大到小输出
    3. int main()
    4. {
    5. int a = 0;
    6. int b = 0;
    7. int c = 0;
    8. int t = 0;
    9. scanf("%d %d %d",&a,&b,&c);
    10. if(a < b)
    11. {
    12. t = a;
    13. a = b;
    14. b = t;
    15. }
    16. if(a < c)
    17. {
    18. t = a;
    19. c = a;
    20. a = t;
    21. }
    22. if(b < c)
    23. {
    24. t = b;
    25. b = c;
    26. c = t;
    27. }
    28. printf("%d %d %d",a,b,c);
    29. return 0;
    30. }

            如上代码,可以看出交换两个数在代码中重复出现,这时可以把交换两个数这个功能封装成函数,这样就可以避免重复代码。

    1. #include
    2. //交换两个整数
    3. void swap(int* a,int* b){
    4. int t = 0;
    5. t = *a;
    6. *a = *b;
    7. *b = t;
    8. }
    9. //三个整数从大到小输出
    10. int main()
    11. {
    12. int a = 0;
    13. int b = 0;
    14. int c = 0;
    15. //int t = 0;
    16. scanf("%d %d %d",&a,&b,&c);
    17. if(a < b)
    18. {
    19. swap(&a,&b);
    20. /*t = a;
    21. a = b;
    22. b = t;*/
    23. }
    24. if(a < c)
    25. {
    26. swap(&a,&c);
    27. /*t = a;
    28. c = a;
    29. a = t;*/
    30. }
    31. if(b < c)
    32. {
    33. swap(&c,&b);
    34. /*t = b;
    35. b = c;
    36. c = t;*/
    37. }
    38. printf("%d %d %d",a,b,c);
    39. return 0;
    40. }

            求两个数的最大公约数

            暴力求解,先求两个数中较小的即为m,然后用两个数分别除以 i ,i 从m开始,i -- ,重复这个相除和 -- 的过程,当两个数分别除以m都为0时,停止循环,这时的 i 就为两个数的最大公约数。

    1. #include
    2. //求两个数的最大公约数
    3. int main()
    4. {
    5. int a = 0;
    6. int b = 0;
    7. int i = 0;
    8. int m = 0;
    9. scanf("%d %d",&a,&b);
    10. if(a > b)
    11. m = b;
    12. else
    13. m = a;
    14. for(i = m;i >= 1;i--)
    15. {
    16. if(a % i == 0 && b % i == 0)
    17. break;
    18. }
    19. printf("%d\n",i);
    20. return 0;
    21. }

            辗转相除法求两个数的最大公约数

    1. #include
    2. //辗转相除法求两个数的最大公约数
    3. //void swap(int* a,int* b){
    4. // int t = 0;
    5. // t = *a;
    6. // *a = *b;
    7. // *b = t;
    8. //}
    9. int main()
    10. {
    11. int a = 0;
    12. int b = 0;
    13. int i = 0;
    14. int m = 0;
    15. scanf("%d %d",&a,&b);
    16. /*if(a < b)
    17. swap(&a,&b);*/
    18. //其实也不用事先求谁更大,如果是小的在前面,a % b 会= a;然后就是b % a,还是还会变成大的 % 小的
    19. while(a % b != 0)
    20. {
    21. m = a % b;
    22. a = b;
    23. b = m;
    24. }
    25. printf("%d\n",b);
    26. return 0;
    27. }

            计算1 - 1 / 2 + 1 / 3 - 1 / 4 + ... + 1 / 99 - 1 / 100

    1. #include
    2. //计算1 - 1 / 2 + 1 / 3 - 1 / 4 + ... + 1 / 99 - 1 / 100
    3. int main()
    4. {
    5. int i = 0;
    6. double sum = 1;
    7. for(i = 2;i <= 100;i++)
    8. {
    9. if(i % 2 == 0)
    10. {
    11. sum = sum - 1.0 / i;
    12. }
    13. else
    14. {
    15. sum = sum + 1.0 / i;
    16. }
    17. }
    18. printf("%lf\n",sum);
    19. return 0;
    20. }

  • 相关阅读:
    南大通用数据库-Gbase-8a-学习-21-Oracle到Gbase8a迁移工具orato8a
    信奥中的数学:进位制
    详解VUE脚手架之安装
    编译一日一练(DIY系列之汇编输出)
    uniapp app tabbar 页面默认隐藏
    【51单片机实验笔记】中断篇(一) 外部中断
    Metasploit入门教程(非常详细)从零基础入门到精通,看完这一篇就够了!
    一日一技:用Python做游戏有多简单 (2)
    stm32 串口发送和接收
    决策树算法之鸢尾花特征分类可视化详解【机器学习】
  • 原文地址:https://blog.csdn.net/m0_63525059/article/details/136411807