2010-11-08 3 views
-1

Эта программа «FindMIn» принимает два значения в качестве параметров и возвращает наименьшее значение. Я пытаюсь изменить свою программу, так что она принимает три значения в качестве параметров и возвращает наименьшее из трех значений. Это то, что у меня есть до сих пор Но как?пытается скомпилировать мою программу на C++.

#include <iostream>        
using namespace std;  
   

//function prototypes go before main - parameters much match those of the function definition 

int FindMin(int x, int y); 

//place prototype for PrintOutput here 

int main() 
{ 
    int n1, n2, n3; 
    int result; 
    char answ = 'Y'; 

    while (answ == 'Y') 
    { 
        cout << "Please enter three numbers..." << endl; 
        cin >> n1 >> n2 >> n3; 
        result = FindMin(n1, n2); //function call 
        
        //place call to function PrintOutput here 

        cout << "Would you like to run the program again?  Enter Y or N" << endl; 
        cin >> answ; 
     } 
    

    return(0); 
} 

//*************************************************************** 
//FindMin - returns the minimum of two values 
//*************************************************************** 
int FindMin(int a, int b) 
{ 
    if (a < b) 
        return a; 
    else 
        return b; 
} 
//****************************************************************** 
//PrintOutput - prints the values input and the smallest of the 
//three values 
//****************************************************************** 
void PrintOutput(int first, int second, int min) 
{ 
    cout << "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" << endl; 
    cout << "The minimum value of " << first << ", " << 
        second << ", is "  << min << endl; 
    cout << "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" << endl; 
} 
+4

как _what_ ... –

+1

-1: Нет конкретного вопроса, так далеко. –

+1

что именно ваш вопрос? – David

ответ

-6
cin >> n1 >> n2 >> n3; 

Это может быть проблемой, так как n1/n2/n3 являются Интс. Вы захотите взять строку ASCII и преобразовать ее в int. Для чего-то это просто, вы могли бы просто использовать atoi, который будет выглядеть примерно так:

char buffer[1024]; 
cin >> buffer; 
n1 = atoi(buffer); 

Уловка преобразование текстового представления числа в реальное число, которое требуется для вашей функции. Просто использование символов почти наверняка даст некоторые нечетные результаты.

+3

-1 std :: cin имеет перегруженный >> оператор, который заполняет int правильно. И использование буферов и atoi в коде C++ ужасно. –

0

Работать на бумаге сначала.

У вас есть три номера, скажем: 1 2 3.

У вас есть функция findMin(int a, int b), которая возвращает наименьшее из двух данных. Вы не можете использовать функцию напрямую, поскольку у нее есть только два аргумента, но вы можете скомпоновать ее по-другому, давая минимум три числа. Это базовая математическая функция.

Вот подсказка:

min(1,2) = 1 
min(1,3) = 1 
min(2,3) = 2 
min(1,min(2,3)) = 1 
0

Вам нужно будет расширить параметры FindMin взять 3 Интс:

int FindMin(int x, int y, int z); 

// ... 

int main() 
{ 
    // ... 
     cin >> n1 >> n2 >> n3; 
     result = FindMin(n1, n2, n3); //function call 
    // ... 
} 

// ... 

int FindMin(int x, int y, int z) 
{ 
    // Place the code that compares the three numbers and returns minimum here 
} 
Смежные вопросы