>#include
No, not C++.
>#include
Also not C++.
>#include
Not only is this not C++, it's also only available on a limited number of implementations.
>void main()
This never has been, and hopefully never will be, correct C++. main returns int. In fact, the old argument of being a lazy ####### ("void main means I don't have to use 'return 0;' at the end of main") doesn't apply anymore because main returns 0 implicitly. So doing things the right way actually saves you a keystroke! :)
>clrscr();
If getch is the patron saint of nonportable functions, clrscr is it's god. Not only is this functionality rarely needed in valid situations, calling it at the start of a program is almost never a valid situation.
>getch();
The patron saint of nonportable functions, but for this use you can replace it with cin.get() and have a similar effect. Sure, you require the user to hit enter instead of any key, but what do they usually hit anyway? :rolleyes:
On to the meat of the problem, unless you know of a clever way to solve the problem (I do, and I'll post it because there's no way you can turn it in as your work), you need three loops. The first loop handles the rows, the second loop is nested inside the first loop and handles leading whitespace, and the third loop comes after the second loop and prints the requisite number of stars:
for rows to 1 do
for 1 to spaces do
print space
loop
for 1 to stars do
print star
loop
loop Here is the nifty way to do it with a single loop:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int rows;
cout<<"Enter the pyramid height: ";
if ( cin>> rows ) {
for ( int i = 0; i < rows; i++ ) {
cout<< setw ( rows - i ) << setfill ( ' ' ) <<"";
cout<< setw ( i * 2 + 1 ) << setfill ( '*' ) <<""<<endl;
}
}
} If, on the off chance that the problem is to print a right triangle rather than an equilateral triangle, the problem is even simpler. Just remove the space printing step. ;)