所以我使用CLion为我的计算机科学课程编写代码。我在我们的机器上遇到了一个错误,这个错误在我的个人机器,终端或CLion中没有发生。
ary0012@cse06:~/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
ary0012@cse06:~/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;
}
我假设问题出在相应行中每个函数的返回值中。我只是想不出办法解决它。对于这篇长篇文章感到抱歉,非常感谢任何帮助。
答案 0 :(得分:1)
你的问题就在这里(虽然这只是一个实例):
cout
这是试图返回ostream
“语句”的结果,这确实会给你一个cout << "The sum of your numbers is: " << sum << endl;
return sum;
,如错误所示。
您可能只想输出该文本,然后返回 值,如:
void min_max(double selection)
但是,由于您实际上从未使用返回值,因此您也可以使函数无效,例如:
return
然后在这些函数中单独使用cout << ...
(当然在dispatch_sync(dispatch_get_main_queue())
{
//do UI updates here
self.recievedScore()
}
之后)。
答案 1 :(得分:0)
你正在返回“cout&lt;&lt; // stuff”的字符。该函数期望您只返回double(sum变量)。
此外,看起来你甚至没有使用返回值。在这种情况下,将函数设置为void并完全删除return语句甚至可能更好。
如果你想能够得到答案并传递它,最好的解决方法是让sum方法调用cout函数将总和输出到控制台,然后在下一行返回实际总和。