You don't need to be an expert to work out what is wrong, you just need to look at the output and apply a little deduction.

Debugging software is something that needs to be learned in the same way that you need to learn how to write software. For a start focus on just one problem at a time, preferably the first problem that appears (fixing it may solve other problems). Look at the output and compare it to what you expected. Look at the code and work out why it is producing the output you are seeing. Only when you understand what the code is actually doing apply a fix to it.

For example:
First a block of stars appears when it is supposed to plus characters - follow the code and find out why when you pass a '+' in you are getting '*' out.

Next when you are printing out a line the stars you get many lines and each subsequent block of stars has one less line than the previous block. Why, when you ask for one line of n stars is it printing several lines (maybe you have too many for loops).

Finally why is the triangle not displaying properly ie why are all the spaces at the beginning of the line and why does each lime have 1 less star than the previous line when your example diagram has 2 less stars.