递归打印可以从 C++ 中的单词列表列表形成的所有句子
给出一个单词列表。目标是创建所有可能的句子,这些句子可以通过使用递归方法从列表中取出单词来形成。您一次只能从两个列表中选取一个词。
让我们看看这个的各种输入输出场景
输入 -
sentence[row][col] = {{"I", "You"},
{"Do", "do not like"},
{"walking", "eating"}}输出 -
I Do walking I Do eating I like walking I like eating You Do walking You Do eating You like walking You like eating
说明-从句子[0-2]中的每个列表中取出一个词给出上述句子。
输入 -
sentence[row][col] = {{"work", "live"},{"easy", "happily"}}输出 -
work easy work happily live easy live happily
说明-从句子[0-1]中的每个列表中取出一个词给出上述句子。
将字符串类型的二维数组声明为sentence[row][col]。将数据作为传递给函数Recursive_Print(sentence)。
在函数内部为Recursive_Print(sentence)
创建一个字符串类型的数组作为arr[row]。
从i到0开始循环FOR,直到i小于col。在循环内,检查IF语句[0][i]不为空,然后调用函数作为Recursion(sentence,0,i,arr)。
在函数内部作为Recursion(stringsentence[row][col],inttemp_1,inttemp_2,stringarr[row])
将arr[temp_1]设置为句子[temp_1][temp_2]。
检查IFtemp_1isrow-1然后开始循环FOR从i到0直到i小于行。在循环内,打印arr[i]。
从i到0开始循环FOR,直到i小于col。在循环内,检查IF语句[temp_1+1][i]不等于空间,然后递归调用该函数作为Recursion(sentence,temp_1+1,i,arr)。
打印结果。
下面程序中使用的方法如下
示例
#include<bits/stdc++.h>
#define row 3
#define col 3
using namespace std;
void Recursion(string sentence[row][col], int temp_1, int temp_2, string arr[row]){
arr[temp_1] = sentence[temp_1][temp_2];
if(temp_1 == row - 1){
for(int i=0; i < row; i++){
cout << arr[i] << " ";
}
cout << endl;
return;
}
for(int i=0; i < col; i++){
if(sentence[temp_1+1][i] != ""){
Recursion(sentence, temp_1+1, i, arr);
}
}
}
void Recursive_Print(string sentence[row][col]){
string arr[row];
for(int i=0; i < col; i++){
if(sentence[0][i] != ""){
Recursion(sentence, 0, i, arr);
}
}
}
int main(){
string sentence[row][col] = {{"Ajay", "sanjay"},{"Like", "is"},{"Reading", "eating"}};
Recursive_Print(sentence);
return 0;
}输出结果如果我们运行上面的代码,它将生成以下输出
Ajay Like Reading Ajay Like eating Ajay is Reading Ajay is eating sanjay Like Reading sanjay Like eating sanjay is Reading sanjay is eating
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短