c - 在 Visual Studio 中拆分文件

标签 c matrix vector

你能帮我将这些文件拆分为:

header.h(这是我已经制作的)

dane.cpp(这是我已经制作的)

solve.cpp(所有求解模式、逆矩阵、x1、x2 和 f) main.cpp

我做了前两个,但我无法管理其他的。

标题:

void dane(float(*q)[2], float *p);

数据:

#include "Header.h"

void dane(float(*q)[2], float *p)
{
printf("Write 4 numbers to Matrix: A\n");
for (int i = 0; i < 2; i++)
{
    for (int j = 0; j <2; j++)
    {
        scanf_s(" %f", &q[i][j]);
    }
}

printf("\nWrite vector: B\n");
for (int i = 0; i < 2; i++)
    scanf_s(" %f", &p[i]);
}

来源:

#include "Header.h"

float A[2][2], B[2], X[2];

void main(void)
{
float AA[2][2];     
float h, det, value;
data(A, B);     
system("cls");      
printf("Matrix A: \n"); 
for (int i = 0; i < 2; i++)      
{
    for (int j = 0; j < 2; j++)
        printf("[%5.2f] ", A[i][j]);
    printf("\n");
}
printf("\n\nVector: \n");
for (int i = 0; i < 2; i++)     
    printf("\n[%5.2f] ", B[i]);

_getch();       

det = (A[0][0] * A[1][1]) - (A[0][1] * A[1][0]);    
AA[0][0] = (1 / det) * A[1][1];
AA[0][1] = (1 / det) * (-1)*A[1][0];
AA[1][0] = (1 / det) * (-1)*A[0][1];
AA[1][1] = (1 / det) * A[0][0];


h = AA[1][0];
AA[1][0] = AA[0][1];
AA[0][1] = h;

if (det <= 0)       
{
    printf("\n\nDoesnt have extreme.");
    _getch();
}

else     
{
    printf("\n\n\nInv matrix: \n");     
    for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j < 2; j++)
            printf("[%5.2f] ", AA[i][j]);
        printf("\n");
    }

    _getch();        

    X[0] = 0.5 * AA[0][0] * (-1) * B[0] + 0.5 * AA[0][1] * (-1) * B[1];
    X[1] = 0.5 * AA[1][0] * (-1) * B[0] + 0.5 * AA[1][1] * (-1) * B[1];
    printf("\n x1 = %5.2f", X[0]);      
    printf("\n x2 = %5.2f", X[1]);      


    value = A[0][0] * X[0] * X[0] + A[1][0] * 2 * X[0] * X[1] + 
        A[1][1] * X[1] * X[1] + B[0] * X[0] + B[1] * X[1];
    printf("\n\n f = %5.2f", value);

    _getch();
}
}

最佳答案

将原型(prototype)保留在头文件中并用#ifndef包围它们。就像下面这样,

Header.h

#ifndef HEADER_H
#define HEADER_H
void dane(float(*q)[2], float *p);
#endif

关于c - 在 Visual Studio 中拆分文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43962935/

相关文章:

C - 将结构变量从一个函数传递到另一个函数

c - 将二维数组传递给函数

matlab - 为什么 inv(matrix)*matrix 不是 Octave 中的精确单位矩阵?

R:矩阵乘法错误(不一致的参数)

c++ - 在 C++ 中的 vector 中的结构中搜索枚举

c++ - 奇怪的 : vector<int> to int C++

c - C 编译器如何解释这个程序?

c - VLA 适用于 gcc-4.9.2,但不适用于 gcc-6.2.0

c - 循环链表中两个节点之间的距离

c++ - 具有unique_ptr成员的对象的错误C2280 vector