在我的数组中双精度之前的主要表达式
Primary expression before Double which is in my Array?
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 个位置传递元素。
相关文章:
- 如何确认我的constexpr表达式实际上已经在编译时执行
- 编写了一个C++代码来检查表达式是否具有平衡括号并且我的代码未运行.我已经卡了一天了
- 为什么我的 SFINAE 表达式不再适用于 GCC 8.2?
- 我的作业问题:布尔表达式
- 我的 Boost 正则表达式与任何内容都不匹配
- 为什么regex_match与我的正则表达式不匹配
- 为什么我不能在我的三元表达式中使用 return,但我可以在常规的 if-else 语句中使用?
- regex_error。我的正则表达式有什么问题
- 我的 XML 标签正则表达式不起作用
- 我的代码出现错误:错误:“”之前应为主表达式代币
- 为什么我的正则表达式会导致无限循环
- 如何正确测试我的后缀表达式是否有效
- 我的 lambda 表达式进行映射键比较有什么问题?
- 在我的数组中双精度之前的主要表达式
- 觉得有必要改进我的正则表达式
- 我的最后一个正则表达式不起作用,但我无法弄清楚原因
- 在我的程序中"无符号"之前的预期主表达式(析构函数和构造函数问题)
- GCC 4.4.3常量表达式错误的偏移.我应该如何解决这个问题
- 错误:'template'之前的预期主要表达式 - 我做错了什么?
- 我可以调用算术表达式中的构造函数吗