모두! 나는 firstname을위한 3-nest for 루프, middle name을위한 3 중첩 된 while 루프, 3 개의 재귀 함수 (반복을 대체하기위한 재귀 사용)를 사용하여 다음과 같은 프로그램을 작성해야한다.C++ 재귀 및 읽기 infile 문제
는 "당신의 이름, 중간 이름과 성을 표시하고> 지정된 행과 열 수치로 나타낸 바와 같이 직사각형의 형성에서 각. 또한, 사이 전에 도트 증가 번호를 표시 동일한 행에있는 이름을 반복 한 후 입력 파일에 각 사람의 이름이 인 동일한 양식을 반복하십시오. 마지막으로 같은 이름을 다시 작성하십시오. "
좋아, 입력 파일에는 이름, 중간 이름 및 마지막 3 행이 들어 있습니다. 나는 한 번에 한 줄씩 파일을 읽어야한다는 것을 알고있다. 그 다음에는 중간 이름으로 공백이 될 때까지 그리고 그 다음 마지막 부분까지 자신의 이름으로 성의 마지막 줄까지 공백이 올 때까지 다음 부분을 넣어야한다. 문자열. 그런 다음 파일 끝에 도달 할 때까지 모든 행을 반복하십시오. 그런 다음 기본적으로 코드를 복사하여 파일 입력을 적용하십시오.
내가 전혀 이해하지 못하는 것은성에 대해 수행해야하는 재귀입니다. 누구든지 나를 보여 주거나 나를 위해 몇 가지 코드를 시작할 수 있습니까? 재귀에 대한 예제를 읽었지만이 컨텍스트로 이식하는 방법을 모르겠습니다.
감사합니다.
지금까지이 코드는 :
`#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;
}`
편집 : 출력과 같이한다 혼란에 대해 :
.john..john ... 존 .... 존 .. ... 존 ......
. 존 ... 존 ... 존 ... .... 존 ..... 존 ......
.bob..bob ... 보브 .... 보브 ..... 보브 ......
""
.doe .. ""
""
그러면 입력 파일은 이름, 중간 이름 및 성의 3 개 행을 읽고 세 행이 모두 완료 될 때까지 위와 같이 반복합니다. 위와 같이 내 이름을 반복합니다. .inputfirstname .. ""
""
내가 재귀의 수를 증가와 함께, 성을 인쇄 할보고 있어요 것과 그래서 등
무엇이 재귀와 관련이 있습니까? – user463035818
일반적으로'while'과'for' 루프는 * 반복 * 재귀 *를 의미하지 않습니다. 재귀는 함수가 자신을 호출 할 때 발생합니다. C++에서'main' 함수는 재귀 적이 될 수 없습니다. –
선생님은 우리가 재귀를 사용하여성에 대한 결과를 이름과 중간 이름의 출력과 같이 나타내기를 원합니다. – itzfran