你能帮我将这些文件拆分为:
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/