一个函数是在main之外,它需要使用一个变量怎么用呢?

时间:2013-07-20 10:16:15

标签: c++ arrays dynamic

我的功能在main()

之外

就是这个

void Ydisplay(int D1[])
{
 for(int i=0;i<a;i++)
  {
   cout<<"\t<<D1[i];
}

数组D1是动态数组 错误是'a'未定义它取自用户所以它必须在主.. 但还有其他选择吗?

4 个答案:

答案 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;

相关问题