我正在尝试修复有错误的代码,而我还有一个错误,我无法弄清楚。错误说:']'令牌之前的预期主要表达式,这是什么意思?我检查了错误的分号和变量名称,但找不到任何东西。这是我的代码(我已经用错误评论了这一行):
// countOnes.cpp
#include<iostream>
#include<cstdlib>
using namespace std;
void countOnes( int array[] ); // Count the number of 1s in a given int array.
const int arraySize = 10;
int array[ arraySize ];
int countOne = 0;
int main()
{
for ( int i = 0; i <= arraySize; i++ )
{
array[ i ] = rand() % 3; // Fill array with 0, 1 or 2 randomly
cout << array[ i ] << " ";
}
countOnes( array[], arraySize ); //ERROR
cout << "\n The number of 1s in the array: " << countOne;
return 0;
}
void countOnes( int array[], int arraySize )
{
for ( int i = 0; i <= arraySize; i++ )
if ( array[ i ] == 1 )
countOne = countOne + 1;
return;
}
答案 0 :(得分:4)
不需要方括号。
countOnes(array[], arraySize);
答案 1 :(得分:2)
countOnes( array[], arraySize ); //ERROR
这里你不需要[] <宣言
void countOnes( int array[] ); // Count the number of 1s in a given int array.
不符合其定义
void countOnes( int array[], int arraySize )
答案 2 :(得分:1)
&#39;阵列&#39;在Microsoft的C扩展名中被视为保留字。 见Why is "array" marked as a reserved word in Visual-C++?。替换&#39;数组&#39;通过别的东西,例如&#39; ARR&#39;
答案 3 :(得分:0)
如果要传递数组,可以将指向第一个元素的指针传递给数组:
void countOnes( int* array, int size );