( 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!