2015-02-11 4 views
0

Привет, у меня возникают проблемы с этой переменной 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; 
+4

Вы хотите 'Int Total_vot = 0;' –

+0

да, но когда я делаю, что общее всегда 0, то программа делит 0 на 100, нарушая мою программу. цикл for с + = должен добавить общий vot до около 3000, тогда дайте мне процент, но это не – Darkaura

+0

@Darkaura Вам действительно нужно 'int Total_vot = 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; 
Смежные вопросы