C++ pyramide, hoort het zo?

Status
Niet open voor verdere reacties.

mmatteman

Gebruiker
Lid geworden
3 sep 2008
Berichten
287
Ik ben nu bezig met C++ leren uit een boek (Aan de slag met C++) en ben nu bij een opgave waar je een soort van pyramide moet maken met behulp van geneste for-statements. Dit is wat ik er van gemaakt heb, en het werkt:

[cpp]
#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int Space=8;
int Stars=1;
for(int TopCol=1; TopCol<=4; TopCol++)
{
for(int TopSpaceRow=1; TopSpaceRow<=Space; TopSpaceRow++)
{
cout << setw(Space);
}
Space--;
for(int TopStarRow=1; TopStarRow<=Stars; TopStarRow++)
{
cout << "*";
}
Stars+=2;
cout << endl;
}
Space=3;
Stars=10;
for(int BottomCol=1; BottomCol<=3; BottomCol++)
{
for(int BottomSpaceRow=1; BottomSpaceRow<=Space; BottomSpaceRow++)
{
cout << setw(Space);
}
Space--;
for(int BottomStarRow=1; BottomStarRow<=Stars; BottomStarRow++)
{
cout << "*";
}
Stars+=2;
cout << endl;
}
cin.get();
return(0);
}
[/cpp]

Ik vraag me alleen af of dit ook de bedoeling was, aangezien de code best lang is voor zo'n simpele opdracht. Ik kan het verder niet controlleren, ben de cd kwijt :/
 
Laatst bewerkt:
waarschijnlijk vallen de uitwerkingen ook wel op internet te vinden. en het kan zo te zien nog wel wat korter.
 
Hoi,

Ik heb het boek toevallig naats me liggen,welke opdracht is het?
 
Je zou iets als het onderstaande kunnen schrijven:

[cpp]
const unsigned int NUMBER_OF_LINES = 8;
for (unsigned int i = 1; i <= NUMBER_OF_LINES; ++i)
{
std::cout << std::setfill(' ') << std::setw(NUMBER_OF_LINES - i + 1);
for (unsigned int j = 0; j < (i * 2 - 1); ++j) std::cout << "*";
std::cout << '\n';
}
[/cpp]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan