我在将带有默认值的数组作为参数传递到
传递数组给
然而,将这两个概念结合起来似乎会产生矛盾:
我希望将诗歌数组作为参数传递给主函数,而不是在函数上面声明它。我知道这样不太考虑内存/栈的问题,但它可以省去一行代码 :)
int main()
函数时遇到了困难。
例如:int main(int a){}
工作得非常好。同样如此。
int main(int a = 1){}
传递数组给
int main()
也非常有效:int main(int a[3])
然而,将这两个概念结合起来似乎会产生矛盾:
int main(int a[1] = {0,1})
经过大量的谷歌搜索,我没有找到解决方案。
请帮助我SO,你是我的唯一希望!
编辑
简而言之,这个程序的目的是为了让我的代码尽可能少的行数,为了我教授最近提出的挑战(不是为了得分--只是为了学习)。任务是创建一个递归的“圣诞节12天”程序。
这是我的当前程序
#include <iostream>
#include <string>
void p(std::string v){std::cout<<v;}
std::string v[13] = {"A Partridge in a Pear Tree.\n\n","2 Turtle Doves\n","3 French Hens\n","4 Colly Birds\n","5 Gold Rings\n","6 Geese-a-Laying\n","7 Swans-a-Swimming\n","8 Maids-a-Milking\n","9 Ladies Dancing\n","10 Lords-a-Leaping\n","11 Pipers Piping\n","12 Drummers Drumming\n",""};
int main(){
switch(v[12].length()){
case 12:system("pause"); return 0;
case 11:p(v[11]);
case 10:p(v[10]);
case 9: p(v[9]);
case 8: p(v[8]);
case 7: p(v[7]);
case 6: p(v[6]);
case 5: p(v[5]);
case 4: p(v[4]);
case 3: p(v[3]);
case 2: p(v[2]);
case 1: p(v[1]);
case 0: p(v[0]);
}v[12] += "0";
main();
}
我希望将诗歌数组作为参数传递给主函数,而不是在函数上面声明它。我知道这样不太考虑内存/栈的问题,但它可以省去一行代码 :)
int
或数组的main()
函数不是标准 C++ 中有效的形式。你在这里想做什么? - In silicomain()
函数。您需要创建另一个递归函数来代替。 - James McNellis