这是我的一个项目,莫名报错

有没有人帮我看看为什么会这样搞了半天也没搞好

img

main.cpp

#include <iostream>
#include "../include/calc.h"

using namespace std;

int main() {
    int n;
    char get;
    double a, b, c, d, e, f, g, h, i, j, k, l;
    cout << "此程序可以计算出二元或三元一次方程组的解" << endl;
    cin.get();

    while (true) {
        cout << "二元还是三元:";
        cin >> n;

        switch (n) {
            case 2:
                cout << "请依次输入未知数项的系数和右值,共6个(暂不支持分数)" << endl;
                cin >> a >> b >> c >> d >> e >> f; //接收输入
                calc_2(a, b, c, d, e, f); //计算

                while (true) {
                    cout << "是否退出?(y/n)";
                    cin >> get;
                    if (get == 'y' || get == 'Y') { //判断get是否为y或Y
                        return 0; //结束程序
                    } else if (get == 'n' || get == 'N') { //判断get是否为n或N
                        break; //跳出while循环
                    } else {
                        cout << "输入错误!请重新输入" << endl;
                        continue; //继续while循环
                    }
                }
                break; //跳出switch语句

            case 3:
                cout << "请依次输入未知数项的系数和右值,共12个(暂不支持分数)" << endl;
                cin >> a >> b >> c >> d >> e >> f >> g >> h >> i >> j >> k >> l; //接收输入
                calc_3(a, b, c, d, e, f, g, h, i, j, k, l); //计算

                while (true) {
                    cout << "是否退出?(y/n)";
                    cin >> get;
                    if (get == 'y' || get == 'Y') { //判断get是否为y或Y
                        return 0; //结束程序
                    } else if (get == 'n' || get == 'N') { //判断get是否为n或N
                        break; //跳出while循环
                    } else {
                        cout << "输入错误!请重新输入" << endl;
                        continue; //继续while循环
                    }
                }
                break; //跳出switch语句

            default:
                cout << "输入错误!请重新输入" << endl;
        }
    }
}

func.cpp

#include <iostream>

using namespace std;

void calc_2(double a, double b, double c, double d, double e, double f) { //二元一次方程组的通解
    double x, y;
    if (a * e - b * d == 0) {
        if (c * e - b * f == 0 || a * f - c * d == 0) {
            cout << "无数解" << endl;
        } else {
            cout << "无解" << endl;
        }
    } else {
        x = (c * e - b * f) / (a * e - b * d);
        y = (a * f - c * d) / (a * e - b * d);
        cout << "x的值为:" << x << endl << "y的值为:" << y << endl;
    }
}

void calc_3(double a, double b, double c, double d, double e, double f,
            double g, double h, double i, double j, double k, double l) { //三元一次方程组的通解
    double x, y, z;
    if (a * (f * k - g * j) + b * (g * i - e * k) + c * (e * j - f * i) == 0) {
        if (b * (g * l - h * k) + c * (h * j - f * l) + d * (f * k - g * j) == 0 ||
            a * (h * k - g * l) + c * (e * l - h * i) + d * (g * i - e * k) == 0 ||
            a * (f * l - h * j) + b * (h * i - e * l) + d * (e * j - f * i) == 0) {
            cout << "无数解" << endl;
        } else {
            cout << "无解" << endl;
        }
    } else {
        x = (b * (g * l - h * k) + c * (h * j - f * l) + d * (f * k - g * j)) /
            (a * (f * k - g * j) + b * (g * i - e * k) + c * (e * j - f * i));

        y = (a * (h * k - g * l) + c * (e * l - h * i) + d * (g * i - e * k)) /
            (a * (f * k - g * j) + b * (g * i - e * k) + c * (e * j - f * i));

        z = (a * (f * l - h * j) + b * (h * i - e * l) + d * (e * j - f * i)) /
            (a * (f * k - g * j) + b * (g * i - e * k) + c * (e * j - f * i));
        cout << "x的值为:" << x << endl << "y的值为:" << y << endl << "z的值为:" << z << endl;
    }
}

calc.h

#pragma once

void calc_2(double a, double b, double c, double d, double e, double f);

void calc_3(double a, double b, double c, double d, double e, double f,
            double g, double h, double i, double j, double k, double l);

【以下回答由 GPT 生成】

这是一个C++代码,而不是C语言代码。首先,删除开头的#include <iostream>,因为在C语言中没有iostream头文件。

其次,修改cin.get()getchar(),因为cin.get()在C语言中无效,而getchar()可以用来读取输入缓冲区中的一个字符。

在C语言中,没有命名空间的概念,所以删除using namespace std;

最后,根据项目中的calc.h文件的内容,确保calc_2和calc_3函数的声明和实现正确。

修改后的代码如下所示:

#include <stdio.h>
#include "../include/calc.h"

int main() {
    int n;
    char get;
    double a, b, c, d, e, f, g, h, i, j, k, l;
    printf("此程序可以计算出二元或三元一次方程组的解\n");
    getchar();

    while (1) {
        printf("二元还是三元:");
        scanf("%d", &n);

        switch (n) {
            case 2:
                printf("请依次输入未知数项的系数和右值,共6个(暂不支持分数)\n");
                scanf("%lf %lf %lf %lf %lf %lf", &a, &b, &c, &d, &e, &f); // 接收输入
                calc_2(a, b, c, d, e, f); // 计算

                while (1) {
                    printf("是否退出?(y/n)");
                    scanf(" %c", &get);
                    if (get == 'y' || get == 'Y') { // 判断get是否为y或Y
                        return 0; // 结束程序
                    } else if (get == 'n' || get == 'N') { // 判断get是否为n或N
                        break; // 跳出while循环
                    } else {
                        printf("输入错误!请重新输入\n");
                        continue; // 继续while循环
                    }
                }
                break; // 跳出switch语句

            case 3:
                printf("请依次输入未知数项的系数和右值,共12个(暂不支持分数)\n");
                scanf("%lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf", &a, &b, &c, &d, &e, &f, &g, &h, &i, &j, &k, &l); // 接收输入
                calc_3(a, b, c, d, e, f, g, h, i, j, k, l); // 计算

                while (1) {
                    printf("是否退出?(y/n)");
                    scanf(" %c", &get);
                    if (get == 'y' || get == 'Y') { // 判断get是否为y或Y
                        return 0; // 结束程序
                    } else if (get == 'n' || get == 'N') { // 判断get是否为n或N
                        break; // 跳出while循环
                    } else {
                        printf("输入错误!请重新输入\n");
                        continue; // 继续while循环
                    }
                }
                break; // 跳出switch语句

            default:
                printf("无效的选择,请重新输入\n");
                break; // 跳出switch语句
        }
    }
}

请注意,我只是修改了C++到C,并做了一些语法上的调整。如果仍然有问题,可能是在calc.h文件中还存在其他问题。请提供calc.h文件的内容,以进行进一步的检查。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^