2016-06-03 2 views
-3

Я пишу код проблемы ACM, в котором мы должны проверять возможности разных элементов. Это небольшая ошибка в коде.Облицовка ошибки в коде C++

#include<iostream> 
using namespace std; 
void CheckPossibilities(int numItems, int maxWeights) 
{ 
    if(numItems <= 0 ) 
    { 
     cout << "Invalid Items"; 

    } 

    if (maxWeights <= 0) 
    { 
     cout << "Impossible"; 

    } 

    while(maxWeights > 0) 
    { 
     if(numItems%2==0)    //for even 
     { 
     numItems = numItems/2; 
     maxWeights--; 
     } 
     else 
     { 
      numItems = (numItems -1)/ 2;  //for odd 
      maxWeights--; 
     } 

    } 

    if(numItems <= 1) 
    { 
     cout << "Possible"; 
    } 
    else 
    { 
     cout << "Impossible"; 
    } 

} 

void main() 
{ 

    int numItems1,maxWeights1; 
    cout<<"enter numItems"<<endl; 
    cin>>numItems1; 
    cout<<"maxWeights"<<endl; 
    cin>>maxWeights1; 
    cout<<numItems1 "AND" maxWeights1<<endl; 
cout<<CheckPossibilities(numItems1, maxWeights1); 
} 
+0

«Невозможно» (каламбур) – SergeyA

+0

что? извините, я не получил u –

+7

* Вся логика кода верна. это небольшая ошибка в коде * либо вся логика верна *, либо * в коде есть ошибка. У вас не может быть обоих. – Borgleader

ответ

1

Ваши ошибки пытались вырезать несколько строк в одной строке, не контактируя с ними каким-либо образом, либо разделяя < <, либо +. Вы также не можете отключить функцию void, потому что она пытается вывести void, вам просто нужно вызвать ее и позволить функции выполнять вывод. С ошибками фиксированной основной должен быть

int main() 
{ 

    int numItems1,maxWeights1; 
    cout<<"enter numItems"<<endl; 
    cin>>numItems1; 
    cout<<"maxWeights"<<endl; 
    cin>>maxWeights1; 
    cout<<numItems1+"AND"+maxWeights1<<endl; 
    CheckPossibilities(numItems1, maxWeights1); 
    return 0; 
} 

В следующий раз взглянуть на то, что выравнивают ошибка возникает, когда компиляции и поиска тех конкретную ошибку, потому что они были очень простыми и специфические синтаксические ошибки, которые могут быть найдены с помощью поиска Google легко ,

+0

Спасибо, что он работает –

-3
void main() 
{ 

    int numItems1, maxWeights1; 
    cout << "enter numItems" << endl; 
    cin >> numItems1; 
    cout << "maxWeights" << endl; 
    cin >> maxWeights1; 
    cout << numItems1 << "AND" << maxWeights1 << endl; 
    CheckPossibilities(numItems1, maxWeights1); 
} 

вы не можете сделать это: cout<<CheckPossibilities(numItems1, maxWeights1); соиЬ взять стандартный выходной поток, а не функции. А также вы забыли поставить < < в cout << numItems1 << "AND" << maxWeights1 << endl; в этой форме, ваш код строит успешно.

+1

Этот ответ вводит в заблуждение, проблема не в том, что cout * не принимает функции *, проблема в том, что возвращаемое значение функции пустое. И, очевидно, печать void не имеет большого смысла . Если бы функция вернула строку int или std :: string, это утверждение было бы правильным. – Borgleader

+3

Действительно, 'void main()'? Если вы собираетесь показать, как должно выглядеть «главное», по крайней мере, получить подпись –

Смежные вопросы