2015-11-11 2 views
-3

Это мое назначение: «Напишите функцию, которая находит большее из двух целых чисел (в основной программе), но позволяет вам изменять значение целых чисел в функции, используя pass by reference». Я пытался выяснить, что не так с моим кодом, но я не могу понять, что это такое. Кто-то, пожалуйста, помогите мне! это назначение состоится сегодня вечером! Вот мой код, как прямо сейчас:Ошибка: контроль достигает конца функции non-void?

#include <iostream> 

using namespace std; 

int change(int& x, int& y) 

{ 
    int temp=0; 

    cout << "Function(before change): " << x << " " << y << endl; 

    temp = x; 
    x = y; 
    y = temp; 

    cout << "Function(after change): " << x << " " << y << endl; 

} 

int main() 

{ 
    int x,y; 

    cout << " Please Enter your first number: "; 
    cin >> x; 

    cout << " Please Enter your second number: "; 
    cin >> y; 

    if (x > y) 
     cout << x << " is greater than " << y << endl; 

    if (x < y) 
     cout << y << " is greater than " << x << endl; 

    if (x == y) 
     cout << x << " is equal to " <<y << endl; 

    cout << "Main (before change): " << x << " " << y << endl; 
    change(x, y); 

    cout << "Main (after change): " << x << " " << y << endl; 

    system("Pause"); 

    return 0; 

} 
+0

Вы указываете, что 'change' возвратит' int' но вы никогда ничего не вернуть. – NathanOliver

+0

Ключевое слово: возвращаемое значение. – deviantfan

ответ

3

change объявлен как возвращающий int, но он никогда не возвращает ничего. Это не выглядит, как ваша функция должна вернуть ничего, так просто объявить его как void:

void change(int& x, int& y) 
Смежные вопросы