( need help ) nested for loops to print the following pattern
조회 수: 2 (최근 30일)
이전 댓글 표시
Write a nested for loops to print the following pattern
A
BA
CBA
DCBA
EDCBA
I write my own code but the output is different any one can show me where is the mistake the code is :
for letter = 'A':'E'
for n= 'A':letter
fprintf(letter)
%fprintf(n)
end
fprintf('\n')
end
and the output is :
A
BB
CCC
DDDD
EEEEE
need help
댓글 수: 1
Guillaume
2017년 12월 5일
A one-liner to generate that matrix:
char(toeplitz(65:69, [65, 32, 32, 32, 32]))
Obviously, not likely to be an accepted answer to this homework problem.
답변 (3개)
Star Strider
2017년 12월 5일
You have to count down from the present index of ‘letter’ in the loop to 1.
(It is difficult to illustrate it without providing the complete solution.)
Example —
letter = 'A':'E';
loop with index k1
k1 = 1
print letter(k1)
k1 = 2
print letter(k1), letter(k1-1) ...
...
end loop
Use fprintf('%s'\n', ...)|* to print the concatenated letter array.
댓글 수: 0
KL
2017년 12월 5일
편집: KL
2017년 12월 5일
You have it almost right but I'd suggest to use for-loops for indexing through rows(lines) and columns(individual character). Also initially you can create your character vector.
For example,
charVec = 'A':'E';
now you have all the possible characters here in this variable. Next is to use your for loops,
for letter = 1:length(charVec)
...
so first loop is for number of lines, as many lines as your number of characters.
for n= letter:-1:1
now as you see, second loop starts from the value of first loop's iterator ( letter) and goes backwards until 1. Why? Because you want to print in reverse order, right?
Now, print it inside the loop and finish the rest.
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!