在我的数组中双精度之前的主要表达式

Primary expression before Double which is in my Array?

本文关键字:表达式 我的 数组 双精度      更新时间:2023-10-16

IT 一直要求我在 Double 之前提供一个主表达式,它在我的 int 数组中,我不知道该怎么办。 我明天有期中考试,呃,这伤害了我的大脑。所有其他输入将有所帮助,谢谢:)

#include <iostream>
#include <iomanip>
using namespace std;
void get_input(double array[50], int& sizearray1)
{
    cout << "How many doubles do you wish to add?" << endl;
    cin >> sizearray1;
    while(sizearray1 < 1 || sizearray1 > 50) {
        cout << "Error: That is an invalid number! You must enter a value between 1 and 50.nHow many doubles do you wish to add?" << endl;
        cin >> sizearray1;
    }
    for(int n=1;n<sizearray1;n++){
        cout << "Enter Double " << n << endl;
        cin >> array[n];
    }
}
double calcSum(double array[50],int sizearray1)
{
    int sum
cout << "The sum is ";
for(n=1,n<sizearray1,n++){
    sum += array[n]
}
cout << sum << endl;
}

void printArray(double c[],int sizearray1)
{
    cout << "The array contains:n";
    for(int n=1;n<sizearray1;n++){
            cout << setprecision(2) << showpoint << fixed  << c[n] << "       ";
    }
    calcSum(double array[50],int sizearray1);
}

int main()
{
    double array1[50];
    int sizearray1 = 0;
    get_input(double array[50],int sizearray1);
    printArray(double array[50],int sizearray1);

首先,我将从一些错误开始,因为此代码无法编译。不可能。您在第 21 行int sum缺少一个分号。第 23 行的 for 循环有逗号而不是分号。您在同一循环中使用了未定义的变量n = 1,您必须在执行此操作之前声明它for(n=1,n<sizearray1,n++) .同样在第 24 行的相同 for 循环中,您忘记了另一个分号sum += array[n] .

回到你的问题:你不能给函数一个类型参数,你实际上会尝试在那里声明一个变量。另外,请不要double calcSum (double array[50], int sizearray1)声明这样的函数,因为这真的不是你想要的......请改用此选项double calcSum (double array[/*Nothing here*/], int sizearray1) .

请检查您的整个代码并修复所有错误。这是我的修复。当然它不起作用,你的代码有点混乱,检查所有函数并给它们正确的参数。

#include <iostream>
#include <iomanip>
using namespace std;
void get_input (double array[], int& sizearray1)
{
    cout << "How many doubles do you wish to add?" << endl;
    cin >> sizearray1;
    while (sizearray1 < 1 || sizearray1 > 50)
    {
        cout << "Error: That is an invalid number! You must enter a value between 1 and 50.nHow many doubles do you wish to add?" << endl;
        cin >> sizearray1;
    }
    for (int n = 1; n < sizearray1; n++)
    {
        cout << "Enter Double " << n << endl;
        cin >> array[n];
    }
}
double calcSum (double array[], int sizearray1)
{
    int sum;
    cout << "The sum is ";
    for (int n = 1; n < sizearray1; n++)
    {
        sum += array[n];
    }
    cout << sum << endl;
}

void printArray (double c[], int sizearray1)
{
    cout << "The array contains:n";
    for (int n = 1; n < sizearray1; n++)
    {
        cout << setprecision(2) << showpoint << fixed  << c[n] << "       ";
    }
    calcSum (array[50], sizearray1); //This still can't work, the variable "array" has not been declared
}

int main()
{
    double array1[50];
    int sizearray1 = 0;
    get_input (array[50], sizearray1); //Again "array" has not been declared
    printArray (array[50], sizearray1); //Again "array" has not been declared
    return EXIT_SUCCESS;
}

调用函数时,不要包含以下类型:

calcSum(double array[50],int sizearray1);

但只需使用变量名称:

calcSum(array[50],sizearray1);

您的get_input()printArray()功能相同。

在您的printArray()函数中,我认为您正在接收传递到变量c中的数组。所以它应该是:

calcSum(c[50],sizearray1);

我认为您正在尝试传递整个数组,那么您只需要使用数组名称:

calcSum(c,sizearray1);

c[50]只会在数组的第 50 个位置传递元素。