2015-10-16 53 views
-1

因此,我使用CLion编写我的计算机科学课程。我在我们的机器上发现了一个错误,这在我的个人计算机Terminal或CLion中没有发生。程序不会在学校电脑上编译,但在我的电脑上完美编译

[email protected]:~/ProblemSet3$ g++ homework3.cpp 
homework3.cpp: In function ‘double sum_mean(double)’: 
homework3.cpp:111:65: error: cannot convert ‘std::basic_ostream<char>::__ostream_type {aka std::basic_ostream<char>}’ to ‘double’ in return 
homework3.cpp:130:67: error: cannot convert ‘std::basic_ostream<char>::__ostream_type {aka std::basic_ostream<char>}’ to ‘double’ in return 
homework3.cpp: In function ‘double min_max(double)’: 
homework3.cpp:159:65: error: cannot convert ‘std::basic_ostream<char>::__ostream_type {aka std::basic_ostream<char>}’ to ‘double’ in return 
homework3.cpp:179:65: error: cannot convert ‘std::basic_ostream<char>::__ostream_type {aka std::basic_ostream<char>}’ to ‘double’ in return 
[email protected]:~/ProblemSet3$ 

代码本身看起来是这样的:

/* 
============================================================================ 
Name  : Homework3.cpp 
Author  : Axel Yates (email address) 
Version  : 1.0 
Copyright : 2015 
Description : 
============================================================================ 
*/ 

#include <iostream> 
using namespace std; 

void display_credentials(); 
// 


void display_menu(); 
// 


double sum_mean(double); 
// 


double min_max(double); 
// 


double selection; 
// 



int main() 
{ 

    do { 
     display_credentials(); 
     display_menu(); 

     cout << "Enter your selection: "; 
     cin >> selection; 

     if (selection == 1) { 
      sum_mean(selection); 
     } 
     else if (selection == 2) { 
      sum_mean(selection); 
     } 
     else if (selection == 3) { 
      min_max(selection); 
     } 
     else if (selection == 4) { 
      min_max(selection); 
     } 
     else if (selection == 5) 
      cout << "Thanks! Have a great day!" << endl; 
     else if (selection > 5 || selection < 1) 
      cout << "That's not a valid number, try again." << endl; 

     }while(selection != 5); 
    return EXIT_SUCCESS; 

} 

void display_credentials() 
{ 
    cout << "+----------------------------------------------+" << endl; 
    cout << "|  Computer Science and Engineering  |" << endl; 
    cout << "|  CSCE 1030 - Computer Science I  |" << endl; 
    cout << "| Axel Yates studID email address here |" << endl; 
    cout << "+----------------------------------------------+" << endl; 

    return; 
} 

void display_menu() 
{ 
    cout << "***************** M E N U *****************" << endl; 
    cout << "| 1. Sum of numbers      |" << endl; 
    cout << "| 2. Mean of numbers      |" << endl; 
    cout << "| 3. Min of numbers      |" << endl; 
    cout << "| 4. Max of numbers      |" << endl; 
    cout << "| 5. Exit         |" << endl; 
cout << "*******************************************" << endl; 


return; 
} 

double sum_mean(double selection) 
{ 
    if (selection == 1) 
    { 
     int quantity, counter = 0, num = 1; 
     double num1 = 0, sum = 0; 

     cout << "Enter the positive quantity of numbers to read in(SUM): "; 
     cin >> quantity; 
     while (counter < quantity) 
     { 
      counter++; 
      cout << "Enter Number " << num++ << ": "; 
      cin >> num1; 
      sum = sum + num1; 
     } 

     return cout << "The sum of your numbers is: " << sum << endl; 
    } 

    else if (selection == 2) 
    { 
      double num1 = 0, temp = 0, sum = 0, mean = 0; 
      int counter = 0, quantity, num = 1; 

      cout << "Enter the positive quantity of numbers to read in(MEAN): "; 
      cin >> quantity; 
      while (counter < quantity) 
      { 
       counter++; 
       cout << "Enter Number " << num++ << ": "; 
       cin >> num1; 
       sum = num1 + sum; 
       mean = (sum)/2; 
      } 

     return cout << "The mean of your numbers is: " << mean << endl; 
    } 
    return 0; 
} 

double min_max(double selection) 
{ 
    if (selection == 3) 
    { 
    int quantity; 
    int counter = 0; 
    int num = 1; 
    double num1 = 0; 
    double sum; 
    double min; 
     cout << "Enter the positive quantity of numbers to read in(MIN): "; 
     cin >> quantity; 
     do 
     { 
       cout << "Enter Number " << num++ << ": "; 
       cin >> num1; 
       if (num1 < min) 
       { 
        min = num1; 
       } 
       counter++; 

     }while (counter != quantity); 

     return cout << "The min of your numbers is: " << min << endl; 
    } 
    else if (selection == 4) 
    { 
     double num1 = 0, temp = 0, max = 0; 
     int counter = 0, quantity, num = 1; 

     cout << "Enter the positive quantity of numbers to read in(MAX): "; 
      cin >> quantity; 
      while (counter < quantity) 
      { 
       cout << "Enter Number " << num++ << ": "; 
       cin >> num1; 
       if (num1 >= max) 
       { 
        max = num1; 
       } 
        counter++; 
      } 

      return cout << "The max of your numbers is: " << max << endl; 
     } 
     return 0; 
    } 

我假设的问题是从相应的线路各功能的回报。我只是无法找出解决方法。很抱歉,很长的文章,任何帮助将不胜感激。

+2

'return cout <<“您的号码的最大值是:”<< max << endl;'您认为这样做了什么?我的家用电脑上的 –

+0

它返回答案。如果我输入4个数字,它会输出该函数中最高的一个。 –

+0

哇... * facepalm * – Mystra007

回答

0

您正在返回一串字符“cout < < // stuff”。该函数期望您仅仅返回double(和变量)。

此外,它看起来你甚至不使用返回值。在这种情况下,将函数设为void并完全删除return语句可能会更好。

如果你想能够接受答案并传递给它,解决它的最好方法是让sum方法调用cout函数将总和输出到控制台,然后在下一行返回实际总和。

1

你的问题就在这里(虽然这只是一个实例):

return cout << "The sum of your numbers is: " << sum << endl; 

这是试图返回cout“声明”,这的确会给你一个ostream作为错误的结果表示。

你可能只是想输出的文本,然后返回只是的值,如:

cout << "The sum of your numbers is: " << sum << endl; 
return sum; 

但是,因为你从来没有真正使用返回值,你不妨做功能无效,如用:

void min_max(double selection) 

然后只在其自己的使用return这些函数中(后当然cout << ...)。

+0

修复它。我知道这是一件小事。我仍然在学习绳索。感谢大家。 –

相关问题