我的变量不会带任何价值

时间:2015-02-11 22:45:26

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

你好我遇到这个变量有问题Total_vot我不知道为什么但是我希望从投票[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;

1 个答案:

答案 0 :(得分:4)

首先,您需要初始化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;