我的功能在main()
之外就是这个
void Ydisplay(int D1[])
{
for(int i=0;i<a;i++)
{
cout<<"\t<<D1[i];
}
数组D1是动态数组 错误是'a'未定义它取自用户所以它必须在主.. 但还有其他选择吗?
答案 0 :(得分:1)
您必须将数组大小作为函数参数传递:
void Ydisplay(std::size_t len, int D1[])
{
for (std::size_t i = 0; i != len ;++i)
{
std::cout << '\t' << D1[i];
}
}
在C ++中,您可以使用std:vector<int>
。
void Ydisplay(std::vector<int> const & D1)
{
for (int n : D1)
{
std::cout << '\t' << n;
}
}
答案 1 :(得分:0)
以这种方式完成你的功能。
void Ydisplay(int D1[])
{
cin >> a; //Remove getting input from main()
for(int i=0;i<a;i++)
{
cout<<'\t'<<D1[i];
}
答案 2 :(得分:0)
a
不知道功能Ydisplay()它是main()的本地,从main传递值a
。
将函数语法更改为:
void Ydisplay(int D1[], int a)
^ add
语法错误,缺少"
:
cout<<"\t" <<D1[i];
// ^ added
答案 3 :(得分:0)
我认为你需要了解你想要做什么。在此特定代码中,您正在尝试打印阵列D1中的元素。因此,您打印从D1 [0]开始到D1 [n]的元素。您可以使用for循环遍历数组D1中的每个元素。 int i从i = 0开始到最后一个元素,即i <1。的sizeof(D1)/的sizeof(int)的。你不需要变量a,你想要做的事情没有任何意义。要在每一行打印,请尝试:cout&lt;&lt; D1 [i]&lt;&lt; ENDL;