这是我为一个有14个插槽的数组编写的代码,每个插槽除了第6个和第13个插槽外都应该有4个插槽,这些插槽将恢复为0.但是,它不能编译。有谁知道我在这里做错了什么?
using namespace std;
#include <iostream>
const int MAX = 14;
int main ()
{
void printArray ();
system ("pause");
return 0;
}
void startArray (int beadArray[MAX])
{
for(int i=0; i<MAX; i++)
{
beadArray[i]=4;
}
beadArray[6]=0;
beadArray[13]=0;
}
//**********************************************//
void printArray ()
{
startArray (int beadArray[MAX]);
for(int i=0; i<MAX; i++)
{
cout<<i;
}
}
答案 0 :(得分:7)
startArray (int beadArray[MAX]);
您尝试声明beadArray
并一步使用它。您应该在使用之前声明它:
int beadArray[MAX];
startArray (beadArray);
您还有许多其他问题:
using namespace std;
无效,因为<iostream>
尚未#include
。您也不应该使用全局using namespace std;
。
system ("PAUSE");
应该被替换。我个人使用:
cin.sync(); cin.get();
编译器在main()
时不知道函数。在main()
之前,您应该放置原型:
void printArray(); void startArray(int []);
main()
中{li> 说void printArray();
。调用函数时,只需使用函数名和参数:
printArray();
在printArray()
中,您输出i
而不是beadArray [i]
。也没有间距。
全局常量是一件坏事。
我看到的固定代码如下:
#include <iostream>
const int MAX = 14;
void startArray (int (&beadArray)[MAX]);
void printArray();
int main ()
{
printArray ();
std::cout << "\n\nPress enter to continue...";
std::cin.sync();
std::cin.get();
return 0;
}
void startArray (int (&beadArray)[MAX])
{
for(int i=0; i<MAX; ++i)
beadArray[i]=4;
beadArray[6]=0;
beadArray[13]=0;
}
void printArray ()
{
int beadArray[MAX];
startArray (beadArray);
for(int i=0; i<MAX; i++)
std::cout << beadArray[i] << ' ';
}
我确实留下了常数,但你可以做很多事情来替换它。
答案 1 :(得分:3)
一些纠正的错误:
using namespace std;
#include <iostream>
const int MAX = 14;
int main ()
{
void printArray ();
system ("pause");
return 0;
}
void startArray (int &beadArray[MAX])
{
for(int i=0; i<MAX; i++)
beadArray[i]=4;
beadArray[6]=0;
beadArray[13]=0;
}
//**********************************************//
void printArray ()
{
int beadArray[MAX];
startArray (beadArray);
for(int i=0; i<MAX; i++)
cout<<beadArray[i];
}