【问题标题】:My variables will not take any value我的变量不会有任何价值
【发布时间】:2015-02-11 22:45:25
【问题描述】:

您好,我在使用这个变量时遇到问题Total_vot 我不知道为什么,但是我希望从 vote[i] 获得的总票数加起来,这个值将变成 Total_vot。但它说变量未初始化,这意味着我在创建变量时没有输入零。我希望该值是所有加起来的选票。但它不起作用,为什么?

我是一个初学者,所以请善待:)

int Total_vot;

    double *POV = new double[ppl];  
    cout << "this is the percentage of votes each candidate got!" << endl;

    for (int i = 0; i < ppl; i++)
    { 
        Total_vot  += vote[i];
    } 
    cout << Total_vot << endl;
    for (int i = 0; i < ppl; i++)
    {
        POV[i] = vote[i] / Total_vot * 100;
    }
    for (int i = 0; i < ppl; i++)
    {

        cout << cans[i]; cout << "     " << vote[i]; cout << "     " << POV[i]; cout<<"%" << endl << endl;

【问题讨论】:

  • 你想要int Total_vot = 0;
  • 是的,但是当我这样做时,总数始终为 0,然后程序将 0 除以 100,从而破坏了我的程序。带有 += 的 for 循环应该将总投票数增加到 3000 左右,然后给我一个百分比,但它没有
  • @Darkaura 你真的需要int Total_vot = 0;。还有其他问题。无论如何,循环不会添加投票,当您没有此行时,您只会看到垃圾结果。
  • 请使用std::vector&lt;double&gt; 而不是创建一个双精度数组。
  • 您描述的内容完全取决于pplvote 中的值,您没有向我们展示。

标签: c++ arrays function variables for-loop


【解决方案1】:

首先需要初始化Total_vot

int Total_vot = 0;

这将消除有关未初始化变量的警告,并且总数将是正确的。

二、作业

POV[i] = vote[i] / Total_vot * 100;

正在执行整数运算,因为所有操作数都是整数。当它将vote[i] 除以Total_vot 时,这将是一个分数,并将向下舍入为0。分配给double 并不重要;它首先计算表达式的结果,然后将该结果转换为 double 以进行赋值。

在进行除法之前,您需要将至少一个操作数转换为 double

POV[i] = vote[i] / (double) Total_vot * 100;

【讨论】:

    猜你喜欢
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    相关资源
    最近更新 更多