【发布时间】:2020-01-25 07:57:36
【问题描述】:
嗨,我想知道有没有办法在运行时根据用户输入创建一定数量的 for 循环?
假设我想制作一个程序,可以打印出多项选择考试的所有选择组合(基于用户输入)(每个问题有四个选择,例如:A、B、C、D )
我怎样才能做到这一点? (我制作的以下功能可以实现这一点,但所有 for 循环都是预构建的(Totol 为 15),我希望看到一些在运行时生成循环的方法。)
例如:
cout<<"Enter how many questions in the exam?"
cin>>n; // if n is 20
cout<<"Here is all the possible combination..."
//gerateing 20 loop...
void print(char arr[],int s)
{
int c=0;
for(int x=0;x<s;x++)
{
cout<<arr[x];
for(int i=0;i<s;i++)
{
cout<<arr[i];
for(int i=0;i<s;i++)
{
cout<<arr[i];
for(int j=0;j<s;j++)
{
cout<<arr[j]; c++;
for(int j=0;j<s;j++)
{
cout<<arr[j]; c++;
for(int j=0;j<s;j++)
{
cout<<arr[j]; c++;
for(int j=0;j<s;j++)
{
cout<<arr[j]; c++;
for(int j=0;j<s;j++)
{
cout<<arr[j]; c++;
for(int j=0;j<s;j++)
{
cout<<arr[j]; c++;
for(int j=0;j<s;j++)
{
cout<<arr[j]; c++;
for(int j=0;j<s;j++)
{
cout<<arr[j]; c++;
for(int j=0;j<s;j++)
{
cout<<arr[j]; c++;
for(int j=0;j<s;j++)
{
cout<<arr[j]; c++;
for(int j=0;j<s;j++)
{
cout<<arr[j]; c++;
for(int j=0;j<s;j++)
{
cout<<arr[j];
c++;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
cout<<"\n";
}
cout<<"TOTAL combinations (if there are 15 questions):"<<c<<"\n";
}
【问题讨论】:
-
哎呀,在上面的代码中,我应该只在最后一个for循环中增加c哈哈
-
看这里,是C,但概念是一样的。 stackoverflow.com/questions/49265552/nesting-for-loop-n-times/…
-
您的代码不能满足您的要求。它将在每个循环中打印相同的数组,因此您将获得 sss...*s (与没有循环一样多的 s)并且它们不会按顺序排列。如果 A 是答案,您有 2 个选项。如果 B 是答案,则有 2 个选项。相同的 C 和 D。所以一个问题有 16 个可能的答案。生成所有这些。而不是为每个问题混合所有这些。
-
我的代码假设有 15 个问题,所以总组合是 1073741824(4 的 15 次方),为了使“16 个可能的答案”你正在谈论的需要 2 个 for 循环(4 对 2 的幂)。我的问题是如何在运行时制作循环
标签: c++ loops for-loop runtime