c++ 我如何从一个函数中获得可以在另一个cpp文件中使用的输出?

n3ipq98p  于 2023-04-01  发布在  其他
关注(0)|答案(2)|浏览(109)

我是C++的新手,有一个任务需要四个计算,所有计算都建立在彼此的基础上。第一个很简单,要求提供4个定义的数字的平均值。我需要从这个文件输出到主cpp文件中打印,但我无法将值传递到主文件。我欢迎任何输入和反馈!
下面是头文件“average.h”的代码:

#ifndef AVERAGE_H_INCLUDED
#define AVERAGE_H_INCLUDED

using namespace std;

double getAverage(int Avg);

#endif

下面是“average.cpp”文件的代码:

#include <iostream>
#include <cmath>

using namespace std;

double getAverage(int avg)

{
    int arr[] = { 24, 30, 40, 50 };
    int size, i;
    int Average, sum = 0;
    size = sizeof(arr) / sizeof(arr[0]);
    for (i = 0; i < size; i++)
        sum = sum + arr[i];
    Average = sum / size;
    return Average;
}

void getAverage()
{
    std::cout << Average << std::endl;
}

下面是“main.cpp”文件:

#include <iostream>
#include "average.h"

using namespace std;

int main()
{
    cout << "The average of the four scores is: " << getAverage << endl;

}

我已经尝试了很多方法,现在我得到了多个错误,感觉我错过了一些简单的事情。任何指导和一点解释我做错了什么会很有帮助。

qv7cva1a

qv7cva1a1#

这里有很多错误,而且因为实际上没有显示任何错误消息,所以很难知道您是否正确编译。
首先,要调用函数,必须使用()
就是这个

int main()
{
    cout << "The average of the four scores is: " << getAverage() << endl;
                                                               ^^   
}

第二,第一个getAverage函数有一个无意义的参数,把它取出来。它也应该返回一个双精度型。

double getAverage()
{
    int arr[] = { 24, 30, 40, 50 };
    int size, i;
    int sum = 0;
    size = sizeof(arr) / sizeof(arr[0]);
    for (i = 0; i < size; i++)
        sum = sum + arr[i];
    double Average = sum / size;
    return Average;
}

也修复头文件

double getAverage();

最后去掉第二个getAverage函数

mbjcgjjk

mbjcgjjk2#

一个返回类型的函数必须用相同的类型定义。这是错误的:

double getAverage(int avg){ ...; int Average; ... ; return Average}

getAverage()函数不能使用Average变量,因为Average是在另一个作用域中定义的。它是在getAverage(int avg)主体中定义的。

//average.h

#ifndef AVERAGE_H_INCLUDED
#define AVERAGE_H_INCLUDED

int getAverage();

#endif

//average.cpp

#include <iostream>
#include <cmath>
#include "average.h"

using namespace std;

int getAverage()

{
    int arr[] = { 24, 30, 40, 50 };
    unsigned long long size;
    int Average;
    int sum = 0;
    size = sizeof(arr)/sizeof(arr[0]);
    for (int i = 0; i < size; i++) {
        sum = sum + arr[i];
    }
    Average = sum / size;
    return Average;
}

//main.cpp

#include <iostream>
#include "average.h"

using namespace std;

int main()
{
    cout << "The average of the four scores is: "<<getAverage();
}

相关问题