• 【初学者入门C语言】之习题篇(二)


    个人主页:天寒雨落的博客_CSDN博客-C,CSDN竞赛,python领域博主

    💬 刷题网站:一款立志于C语言的题库网站蓝桥杯ACM训练系统 - C语言网 (dotcpp.com) 

     特别标注:该博主将长期更新c语言内容,初学c语言的友友们,订阅我的《初学者入门C语言》专栏,关注博主不迷路!

    目录

    一、求一元二次方程的解

    1.题目

    2.思路

    3.代码

    补充知识点

    1.math.h

    2.控制输出格式

    二、猜数字游戏

    1.题目

    2.代码

    3.执行结果

    三、总结 


    一、求一元二次方程的解

    1.题目

    求一元方程ax^2+bx+c=0(a!=0)的实数根,a,b,c通过键盘输入

    2.思路

    解一元二次方程a不为0的时候有三种情况,一、有两个不相等的实数根;二、有两个相等的实数根;三、有两个不相等的共轭复根。使用\bigtriangleup=b^2-4ac与0的关系来控制执行条件,再用求根公式求解(需要用求根函数sqrt(),在头文件需要声明一下#include"math.h")

    3.代码

    1. #include "stdio.h"
    2. #include "math.h"
    3. int main() {
    4. float a, b, c, d, x1, x2, p, q;
    5. printf("请输入a,b,c:");
    6. scanf("%f%f%f", &a, &b, &c);
    7. d = b * b - 4 * a * c;
    8. if (d > 0) {
    9. x1 = (-b + sqrt(d)) / (2 * a);
    10. x2 = (-b - sqrt(d)) / (2 * a);
    11. printf("方程有两个不相等的实数根,分别为:");
    12. printf("%.2f,%.2f", x1, x2);
    13. } else if (d == 0) {
    14. x1 = (-b + sqrt(d)) / (2 * a);
    15. x2 = x1;
    16. printf("方程有两个相等的实数根,分别为:");
    17. printf("%.2f,%.2f", x1, x2);
    18. } else {
    19. p = -b / (2 * a);
    20. q = sqrt(-d) / (2 * a);
    21. printf("方程有两个不相等的共轭复根,分别为:");
    22. printf("%.2f+%.2fi,%.2f+%.2fi", p, q, p, q);
    23. }
    24. return 0;
    25. }

    补充知识点

    1.math.h

    math.h头文件中声明了常用的一些数学运算(大多是数学公式)

    1.绝对值

    int n=-1;

    abs(n); 求整型的绝对值

    2.三角函数

    double sin(n);正弦

    double cos(n);余弦

    double tan(n);正切

    3.求根

    int 4;

    sqrt(n);

    2.控制输出格式

    %3d:输出所占的格子(向右对齐),比如输出数字,前面就空3-1=2个空格。

    代码结果:

    1. #include "stdio.h"
    2. int main() {
    3. int n = 2;
    4. printf("%3d", n);
    5. return 0;
    6. }

    执行结果:

    %9s: 输出所占的格子(向右对齐),输出字符串,前面空9-字符串的长度个空格

    代码:

    1. #include "stdio.h"
    2. int main() {
    3.     char str[6] = "china";
    4.     printf("%9s", str);
    5.     return 0;
    6. }

    执行结果:

    注意定义字符数组要比字符串的长度大1 

    %.2f:保留两位小数点

    代码:

    1. #include "stdio.h"
    2. int main() {
    3. float n = 2;
    4. printf("%.2f", n);
    5. return 0;
    6. }

    执行结果:

     %5.3f:占5个位,数值保留三位小数点

    代码:

    1. #include "stdio.h"
    2. int main() {
    3. float n;
    4. scanf("%f", &n);
    5. printf("%8.3f", n);
    6. return 0;
    7. }

    执行结果:

     5保留三位小数为5.000,占5个位,小数点也占一个位,所以前面就空三个位

    二、猜数字游戏

    1.题目

    猜一个100以内的随机数,猜大了提醒大了,猜小了提醒小了

    2.代码

    1. #include
    2. #include
    3. #include
    4. int main() {
    5. int r, n;
    6. srand((unsigned)time(NULL));
    7. r = rand() % 100; //100以内的随机数
    8. do {
    9. scanf("%d", &n);
    10. if (n > r) {
    11. printf("大了!\n");
    12. } else if (n < r) {
    13. printf("小了!\n");
    14. } else {
    15. printf("恭喜你猜对了!");
    16. }
    17. } while (n != r);
    18. return 0;
    19. }

    3.执行结果

    三、总结 

    通过上面两个习题需要掌握一些常用的数学函数、两种控制输出格式的方法、会生成随机数,熟练使用if语句。

    各位C语言的初学者有问题随时都可以问我,随时为您解惑!!!

    👍+✏️+⭐️是对博主最大的鼓励与支持!!!

  • 相关阅读:
    nodeJs--http模块
    C++ 二维前缀和 子矩阵的和
    关于代码性能优化的总结
    实验记录:搭建网络过程
    新能源汽车运行安全性能检验规程需要哪些CAN数据才符合标准
    【广州华锐互动】VR模拟真实火灾场景,教你如何正确逃生和自救
    Java获取当前日期和时间
    12个C语言必背实例
    2021年的一封情书:指针
    基于JAVA的鲜花店商城平台【数据库设计、源码、开题报告】
  • 原文地址:https://blog.csdn.net/m0_67388084/article/details/127109882