首页 > 解决方案 > 为什么错误一直返回“变量的类型不完整”?

问题描述

我正在尝试编写一个代码来解决两个带电粒子之间的力的库仑定律方程(使用 void)并且我不断收到错误:变量具有不完整的类型“void”。代码应测量 r=1,然后循环(每次将 r 加 3)并在 r < 60 时完成。它将输出所有这些结果。

int main() {
float Q_one;
float Q_two;
int rad = 1;
double const k = 8990000000;
cout << "Enter the charge of particle 1." << endl;
cin >> Q_one;
cout << "Enter the charge of particle 2." << endl;
cin >> Q_two;
void force (float Q_one, float Q_two, int rad);
void force = ((k * ((Q_one * .000001) * (Q_two * .000001))) / (rad * rad));
while (rad <= 60) {
    {
        force (Q_one, Q_two, rad);
        cout << "Radius " << (rad) << " ";
        cout << "Force " << (force) << endl;
        rad += 3;
    }
}

}

我尝试过重新排列这多种方式并改变我定义“力”的方式,但似乎没有任何效果。关于如何解决这个问题的任何想法?

标签: c++void

解决方案


我不确定你想做什么。

修复一些错误后,我得到了这个:

#include <iostream>
#include <type_traits>
#include <vector>
using namespace std;
int main() {
    float Q_one;
    float Q_two;
    int rad = 1;
    double const k = 8990000000;
    cout << "Enter the charge of particle 1." << endl;
    cin >> Q_one;
    cout << "Enter the charge of particle 2." << endl;
    cin >> Q_two;
    auto force = [k](float Q_one, float Q_two, int rad) { return (k * Q_one * .000001 * Q_two * .000001) / (rad * rad); };
    while (rad <= 60) 
        {
            auto result = force (Q_one, Q_two, rad);
            cout << "Radius " << (rad) << " ";
            cout << "Force " << (result) << endl;
            rad += 3;
        }
}

演示:魔杖盒

它看起来像你想要的吗?


推荐阅读