你好我遇到这个变量有问题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;
答案 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;