LLZWHS
码龄2年
关注
提问 私信
  • 博客:6,895
    问答:17
    6,912
    总访问量
  • 10
    原创
  • 425,824
    排名
  • 8
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:安徽省
  • 加入CSDN时间: 2022-09-22
博客简介:

m0_73884264的博客

查看详细资料
个人成就
  • 获得25次点赞
  • 内容获得5次评论
  • 获得65次收藏
  • 代码片获得653次分享
创作历程
  • 10篇
    2023年
成就勋章
兴趣领域 设置
  • 编程语言
    c++c语言
  • 开发工具
    visual studio
  • 数据结构与算法
    算法数据结构
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

180人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

C语言链表实现一元多项式的相加和相乘

你可以定义一个函数 `insertNode`,该函数将根据指数的大小将结点插入到适当的位置,并合并具有相同指数的项。这个函数将遍历两个多项式链表,相同指数的项系数相减,然后将结果插入到新的链表中。在 `main` 函数中创建两个多项式,分别插入结点,然后调用相加和相减运算的函数,将结果打印出来,以验证运算的正确性。这个函数将遍历两个多项式链表,相同指数的项系数相加,然后将结果插入到新的链表中。首先,需要定义一个多项式结点的数据结构,包含系数和指数,并且要有指向下一个结点的指针。这将作为链表的结点类型。
原创
发布博客 2023.11.04 ·
592 阅读 ·
2 点赞 ·
1 评论 ·
9 收藏

C语言链式存储结构和顺序存储结构

1. 需要频繁地进行插入和删除操作:链式存储结构可以通过改变指针的指向来高效地插入和删除元素,不需要移动其他元素,因此适合频繁执行插入和删除操作的场景。1. 随机访问和索引操作频繁:顺序存储结构使用数组来存储数据,可以通过索引直接访问元素,因此适合需要频繁进行随机访问和索引操作的场景。顺序存储结构的优点是访问元素的效率较高,但是插入和删除元素时需要移动其他元素,可能导致性能下降。3. 存储空间不连续:链式存储结构通过指针相连,可以克服顺序存储结构需要连续的存储空间的限制。
原创
发布博客 2023.10.29 ·
627 阅读 ·
1 点赞 ·
1 评论 ·
2 收藏

C语言“仅有尾指针”的单循环链表和“仅有头指针”的单循环链表

因此,仅有尾指针的单循环链表在插入和删除节点时更加高效,但在访问节点时较慢;- 但在访问链表中的节点时,需要从尾节点开始遍历整个链表,直到回到尾节点,时间复杂度为O(n),其中n是链表的长度。- 在访问链表中的节点时,只需要从头节点开始遍历整个链表,直到回到头节点,时间复杂度为O(n),其中n是链表的长度。- 在插入和删除节点时,由于只需要修改尾节点的指针,所以操作相对简单,时间复杂度为O(1)。- 在插入和删除节点时,需要先遍历链表找到尾节点,然后再进行操作,时间复杂度为O(n)。
原创
发布博客 2023.10.28 ·
755 阅读 ·
3 点赞 ·
0 评论 ·
2 收藏

C语言双向链表

【代码】C语言双向链表。
原创
发布博客 2023.10.28 ·
69 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

数据结构C语言-利用线性表编程实现多项式的相加

由于需要遍历两个多项式,时间复杂度为O(m+n),其中m和n分别表示两个多项式的长度。然后,通过比较指数的大小,将两个输入的多项式进行合并,并将结果存储在result多项式中。函数中,通过循环遍历多项式的每一项,时间复杂度为O(n),其中n为多项式的长度。4. 主函数中,除了调用上述函数外,还需要输入两个多项式的长度,时间复杂度为O(1)。函数中,通过遍历结果多项式,时间复杂度为O(k),其中k表示结果多项式的长度。,其中m和n分别表示两个多项式的长度,k表示结果多项式的长度。用于表示多项式中的一项,
原创
发布博客 2023.10.22 ·
338 阅读 ·
2 点赞 ·
1 评论 ·
4 收藏

数字逻辑基础二进制、十进制、八进制、十六进制数之间的相互转换以及各进制的正负表示

例如,如果要将十六进制数 “3A” 转换为二进制,按照上述规则,将它分别转换为 “0011 1010”,然后连接起来,得到二进制表示 “00111010”。将整数一直除以8,记录余数,直到商为0为止,然后将余数按相反的顺序排列,就是八进制表示。将整数一直除以16,记录余数,直到商为0为止,然后将余数按相反的顺序排列,就是十六进制表示。通常,最高位(最左边的数字)为符号位,0表示正数,1表示负数。十六进制数使用0-9和A-F来表示,其中A代表10,B代表11,C代表12,D代表13,E代表14,F代表15。
原创
发布博客 2023.10.21 ·
733 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

c++实验二,数据类型和指针类型的长度

答:

#include <iostream>

int main() {
    // Basic data types
    std::cout << "Size of char: " << sizeof(char) << " bytes" << std::endl;
    std::cout << "Size of short: " << sizeof(short) << " bytes" << std::endl;
    std::cout << "Size of int: " << sizeof(int) << " bytes" << std::endl;
    std::cout << "Size of long: " << sizeof(long) << " bytes" << std::endl;
    std::cout << "Size of float: " << sizeof(float) << " bytes" << std::endl;
    std::cout << "Size of double: " << sizeof(double) << " bytes" << std::endl;

    // Pointer types
    std::cout << "Size of void*: " << sizeof(void*) << " bytes" << std::endl;
    std::cout << "Size of char*: " << sizeof(char*) << " bytes" << std::endl;
    std::cout << "Size of int*: " << sizeof(int*) << " bytes" << std::endl;
    std::cout << "Size of long*: " << sizeof(long*) << " bytes" << std::endl;
    std::cout << "Size of float*: " << sizeof(float*) << " bytes" << std::endl;
    std::cout << "Size of double*: " << sizeof(double*) << " bytes" << std::endl;

    return 0;
}
回答问题 2023.10.18

最小二乘法用来识别参数

答:

引自chatgpt
最小二乘法是一种常用于参数估计和曲线拟合的优化算法。提供一个简单的C语言示例来演示如何使用最小二乘法进行参数识别。

假设我们有一个简单的线性模型:y = mx + b,我们要使用最小二乘法来估计参数 m 和 b。

#include <stdio.h>

void leastSquaresFit(float x[], float y[], int n, float *m, float *b) {
    float sum_x = 0.0, sum_y = 0.0, sum_xy = 0.0, sum_x_squared = 0.0;

    for (int i = 0; i < n; i++) {
        sum_x += x[i];
        sum_y += y[i];
        sum_xy += x[i] * y[i];
        sum_x_squared += x[i] * x[i];
    }

    *m = (n * sum_xy - sum_x * sum_y) / (n * sum_x_squared - sum_x * sum_x);
    *b = (sum_y - (*m) * sum_x) / n;
}

int main() {
    int n = 5; // 假设有5组数据
    float x[] = {1, 2, 3, 4, 5}; // 输入 x 值
    float y[] = {1.2, 2.8, 3.7, 4.9, 5.8}; // 对应的 y 值

    float m, b; // 待估计的参数

    // 使用最小二乘法进行参数估计
    leastSquaresFit(x, y, n, &m, &b);

    // 输出估计的参数
    printf("估计的参数 m: %.2f\n", m);
    printf("估计的参数 b: %.2f\n", b);

    return 0;
}

在上述代码中,我们首先定义了一个线性模型 y = mx + b。然后使用最小二乘法函数 leastSquaresFit 来估计参数 m 和 b。在 main 函数中,我们提供了一些输入值,并调用最小二乘法函数来估计参数。

至于如何确定最优初值,这通常需要根据具体的问题和模型来选择。通常情况下,可以根据问题背景、经验值或者其他算法来选择初始值。选择合适的初始值可以影响最终估计的参数。在实际应用中,可能需要尝试不同的初始值以寻找最优的参数估计。

回答问题 2023.10.17

输出方程的根 答案保留两位小数

答:

运算中使用浮点型常量,或者将整型变量赋值给浮点型变量。这样会导致隐式类型提升,将整型转换为浮点型。

你定义的全是整型变量,如果不用强制类型转换,需要在运算过程中使用浮点型常量比如乘以个1.0,才能将结果转换成浮点数,从而实现保留小数


#include <stdio.h>
#include <math.h>

int main() {
    int a = 0;
    int b = 0;
    int c = 0;
    double x, y;

    printf("请输入a、b、c的值:");
    scanf("%d %d %d", &a, &b, &c);

    int discriminant = b * b - 4 * a * c;

    if (discriminant > 0) {
        x = (-b + sqrt(discriminant)) / (2 * a);
        y = (-b - sqrt(discriminant)) / (2 * a);
    } else if (discriminant == 0) {
        x = y = -b / (2.0 * a);
    } else {
        printf("方程无实根\n");
        return 0;
    }

    printf("方程的解为: %.2f, %.2f\n", x, y);

    return 0;
}
回答问题 2023.10.17

MATLAB中的一些编程问题

答:

function main()
    % 生成三角函数信号
    fs = 1000; % 采样频率
    t = 0:1/fs:1-1/fs; % 时间序列
    f_signal = 50; % 三角函数的频率(示例中取50 Hz)
    signal = sin(2*pi*f_signal*t);

    % 调用自定义的FFT函数
    calculate_frequency(signal, fs);
end

function calculate_frequency(signal, fs)
    N = length(signal); % 信号长度
    fft_result = fft(signal, N); % 对信号进行FFT

    % 计算频谱
    f = (0:N-1)*(fs/N); % 频率序列
    magnitude = abs(fft_result)/N; % 幅值谱
    magnitude = magnitude(1:N/2); % 仅取一半频谱

    % 找到主频率
    [~, index] = max(magnitude); % 找到幅值最大的频率
    main_frequency = f(index);

    disp(['信号主频率为: ', num2str(main_frequency), ' Hz']);
end

此示例包括两个函数,main 用于生成三角函数信号并调用 calculate_frequency 函数进行FFT分析。calculate_frequency 函数对信号进行FFT,计算频谱并找到主频率。您可以修改 f_signal 参数来设置三角函数的频率。在主函数中,取频率为50Hz的三角函数作为示例。

回答问题 2023.10.17

编写程序,实现一个商品类

答:

#include <iostream>
using namespace std;

class Product {
private:
    int productNumber;  // 商品编号
    float price;        // 单价
    int quantity;       // 数量
    static int totalQuantity;  // 总数量
    static float totalPrice;   // 总价格

public:
    // 构造函数
    Product(int number, float p, int q) : productNumber(number), price(p), quantity(q) {
        totalQuantity += q;
        totalPrice += p * q;
    }

    // 统计总数量和总价格
    static void count() {
        cout << "总数量: " << totalQuantity << endl;
        cout << "总价格: " << totalPrice << endl;
    }

    // 静态成员函数输出统计结果
    static void display() {
        cout << "统计结果:" << endl;
        count();
    }
};

// 初始化静态成员变量
int Product::totalQuantity = 0;
float Product::totalPrice = 0;

int main() {
    // 实例化3个商品对象
    Product product1(1001, 10.5, 2);
    Product product2(1002, 8.2, 3);
    Product product3(1003, 12.0, 1);

    // 统计总数量和总价格并显示
    Product::display();

    return 0;
}

回答问题 2023.10.17

c++,.switch后面填什么

答:

给出完整程序,望采纳


#include<iostream>
using namespace std;

int main()
{
    float score;
    char mark;

    cout << "请输入百分制成绩:";
    cin >> score;

    if (score < 0 || score > 100) {
        cout << "输入成绩错误!" << endl;
    }
    else {
        int score_int = static_cast<int>(score) / 10;

        switch (score_int) {
            case 10:
            case 9:
                mark = 'A';
                break;
            case 8:
                mark = 'B';
                break;
            // Add cases for other grade ranges if needed
            default:
                mark = 'C';  // Assign 'C' for other cases
        }

        cout << "成绩等级为:" << mark << endl;
    }

    return 0;
}
回答问题 2023.10.17

STC32G12K128能加摄像头模块吗

答:

STC32G12K128是STC微电子推出的一款单片机芯片,主要应用于嵌入式系统。要确定STC32G12K128能否连接摄像头模块,需要考虑单片机的性能、接口、协议、电压等多个方面。

  1. 性能和计算能力:
    首先,要评估STC32G12K128的处理能力是否足够处理摄像头模块产生的数据。摄像头模块通常会输出大量图像数据,要求单片机具备足够的处理能力,能够高效地处理这些数据,例如压缩、编解码等操作。

  2. 接口:
    摄像头模块通常会使用特定的接口协议进行数据传输,常见的接口包括UART、I2C、SPI、CSI(Camera Serial Interface)等。要确保STC32G12K128上存在适合连接摄像头模块的接口,或者可以通过适配电路将摄像头模块接入到已有的接口上。

  3. 协议兼容性:
    摄像头模块会使用特定的通讯协议,如OV7670模块常使用 SCCB(Serial Camera Control Bus)协议。确保STC32G12K128能够理解和支持摄像头模块所采用的协议,以确保数据的正确传输和处理。

  4. 电压和电流:
    摄像头模块通常需要特定的电压和电流供应,确保STC32G12K128能够提供摄像头模块所需的电压和电流,或者通过适配电路来满足摄像头模块的电源要求。

要将摄像头模块与STC32G12K128成功连接,需要确保单片机具备足够的计算能力来处理摄像头模块产生的大量数据,并检查接口、协议、电压等方面的兼容性。在连接时,可能需要设计适配电路,确保摄像头模块能够与STC32G12K128稳定、可靠地通信和工作。

回答问题 2023.10.17

C++面对对象编程—类和对象

类的成员有public(公有的)、protected(保护的)和 private(私有的)三种访问属性。聚集使用方法是将一个类的对象作为另一个类的成员变量,从而实现更复杂的功能。在 C++ 中,类是一种用户自定义类型,用于封装数据和操作数据的函数。构造函数是在对象创建时自动执行的函数,用于初始化对象的成员变量;析构函数是在对象销毁时自动执行的函数,用于释放对象占用的资源。在类的内部,可以直接访问 private 成员;在类的外部,只能通过公有成员函数来访问私有成员。1. 类的定义和使用。
原创
发布博客 2023.10.17 ·
38 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据结构C++-模式匹配算法和KMP算法

KMP算法是一种基于字符串匹配的算法,其核心思想是利用已匹配的字符串的信息,尽可能少地回溯文本串和模式串的位置,从而提高匹配的效率。算法的基本思想是,从文本串的左端开始,依次将模式串与文本串的每个子串进行匹配,直到找到匹配的位置或者遍历完整个文本串。虽然C模式匹配算法的思想简单,但是其时间复杂度为O(nm),其中n和m分别表示文本串和模式串的长度,当文本串和模式串的长度较大时,算法的效率会比较低。虽然KMP算法的实现比C模式匹配算法略微复杂一些,但是其效率更高,适用于处理大规模的文本串和模式串。
原创
发布博客 2023.10.16 ·
173 阅读 ·
3 点赞 ·
1 评论 ·
0 收藏

C语言利用栈和队列实现回文字符串的判断

4. 依次将队列和栈中的元素出队和出栈进行比较,如果出队和出栈的元素不相等,则该字符串不是回文字符串,返回false;否则,继续比较下一个元素。6. 在主函数中,获取用户输入的字符串,调用isPalindrome()函数判断该字符串是否为回文字符串,最后输出结果。5. 如果队列和栈中的元素全部比较完毕,且每次比较出队和出栈的元素都相等,则该字符串是回文字符串,返回true。1. 定义一个队列和一个栈的结构体,分别用于存储字符串中的元素。3. 将字符串中的每个字符依次入队和入栈。2. 初始化队列和栈。
原创
发布博客 2023.10.13 ·
3104 阅读 ·
7 点赞 ·
0 评论 ·
47 收藏

C语言利用栈实现十进制整数转换为任意进制(2-32)。

需要注意的是,本程序支持的进制范围是2-36(包含2和36),如果要支持更高的进制数,需要修改输出语句中的字符范围。
原创
发布博客 2023.10.10 ·
439 阅读 ·
5 点赞 ·
0 评论 ·
3 收藏
加载更多