すべて! firstnameには3-nest forループ、middle nameには3-nested whileループ、3つの再帰関数(繰り返しを置き換えるために再帰を使用する)を使用しているときは、次のようなプログラムを書く必要があります。C++ recursion&read infile trouble
"指定された の行数と列数で示されているように、それぞれ長方形の形をした「名字、あなたのミドルネーム、姓を表示する」また、同じ行にある の名前を繰り返した後、入力ファイルに各人の名前を 同じ形で繰り返します。最後に同じ名前の フォーメーションを繰り返してください。
入力ファイルには、名、ミドルネーム、および前回の3行が含まれています。私はファイルを一度に1行ずつ読み込んで、名前をスペースにしてから次の部分をミドルネームにし、最後の名前を最後まで自分の名前にする必要があることを知っています文字列。その後、ファイルの終わりに達するまで、すべての行について繰り返します。その後、基本的に私のコードをコピーしてファイル入力を適用します。
私が全く理解していないのは、私が姓のためにしなければならない再帰です。誰かが私を見せたり、私のためにいくつかのコードを始めることができますか?私は再帰に関する例を読んだことがありますが、私はこの文脈への移行方法を知らないのですか?
ありがとうございます!
私がこれまで持っているコードは次のとおりです。
`#include <iostream>
#include <string>
#include <fstream>
using namespace std;
//void lnameFunction(int j)
//{ while (c = 1)
int main()
{
string fname, mname, lname; //declare name
fname = "John;
mname = "Bob";
lname = "Doe";
int rows = 2; int column= 5;
for (int i= 0; i < rows ; i++) // for loop for fname
{ cout << "."; // first period of line
for ( int j= 1; j <=column; j++) //name after each period series
{ cout << fname;
for (int k= 0 ; k <= j ; k++) //increasing periods
{ cout << ".";
}
}
cout << endl;
}
cout << endl;
int i = 0, j = 0, k = 0, c = 0; // declare var. for while loop
while (i < 2) // while loop for lname
{ cout << ".";
while (j < 5)
{ cout << mname;
j++;
while (k < j+1)
{ cout << ".";
k++;
}
k=0;
}
i++;
j=0;
cout << endl;
}
c++; // increase C for lnamefunction
return 0;
}`
EDIT:混乱したため、出力はとても好きでなければならない:
.john..johnを...ジョン....ジョン.. ...ジョン.........
.john..john ...ジョン... ....ジョン... .....ジョン.........
.bob..bob ...ボブ....ボブ.....ボブ......
""
.doe .. ""
"
入力ファイルは、3行の名前、中間名、および姓の3つの行を読み取り、3行すべてが完了するまで上記のように繰り返します。上記のように私の名前を繰り返します。私は数の増加と、あなたは再帰的に最後の名前をプリントアウトしたいものを見ているから .inputfirstname ..「」
「」だから
など
このすべては再帰と何が関係していますか? – user463035818
一般に、whileとforのループの使用は*反復*ではなく*再帰*を意味します。再帰は、関数がそれ自身を呼び出すときです。 C++では 'main'関数を再帰的に使うことはできません。 –
私たちの先生は、再帰を使用して姓の出力を、最初の名前と中間名の出力のように表示させたいと考えています。 – itzfran