( need help ) nested for loops to print the following pattern
15 views (last 30 days)
Show older comments
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 Comment
Guillaume
on 5 Dec 2017
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.
Answers (3)
Star Strider
on 5 Dec 2017
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 Comments
KL
on 5 Dec 2017
Edited: KL
on 5 Dec 2017
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.
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!