Witam.
Mam problem potrzebuję zrobić takie coś:
*
*
***
***
*****
*****
*******
*******
i nie wiem jak.
Mogą zostać wykorzystane tylko 2x for i 1x if.
Z góry dzięki
Witam.
Mam problem potrzebuję zrobić takie coś:
*
*
***
***
*****
*****
*******
*******
i nie wiem jak.
Mogą zostać wykorzystane tylko 2x for i 1x if.
Z góry dzięki
Inicjalnie tworzysz string z jedną gwiazdką
W forze, w inicjalizacji ustaw
int i = 1
warunek daj ile chcesz, krok co 1 w srodku robisz if’a którego warunek dajesz
i mod 3 == 0
jesli warunek zajdzie do stringa konkatenujesz dwie gwiazdki w p.p. wypisujesz stringa na stdout.
Kolego niestety nie zrozumiałem za dobrze twojego postu
for(int i=1;i<=10;i++)
{
for(int j=1;j<=i;j++)
{
cout << "**";
j+=1;
}
cout<
}
mam tak i wyświetla się tak
**
**
****
****
******
******
a niestety musi zaczynac od 1 gwiazdki
W wewnętrznym forze daj if’a w którym jeśli j == 1 to wypisujesz jedną gwiazdkę, w p.p. dwie gwiazdki
A ja to widzę tak
using namespace std;
int main(int argc, char* argv[])
{
int i,j,k;
for (i=1; i<=8; i++) {
if (i%2==0) k=i-1; else k=i;
for (j=1; j<=k; j++) {
cout << "*";
}
cout << endl;
}
getch();
return 0;
}
Właściwie da się to zrobić dwoma forami bez if
#include
int main()
{
for(int i = 0; i < 8; ++i)
{
for(int j = 0; j < (i & ~1) + 1; ++j)
std::cout << '*';
std::cout << std::endl;
}
return 0;
}
A jeśli użyjemy bufora, do którego będziemy dopisywali gwiazdki to wystarczy jeden for
#include
#include
int main()
{
std::string buf = "*";
static const char ast[] = "**";
for(int i = 0; i < 8; ++i)
{
std::cout << buf << std::endl;
buf += &ast[2 * !(i & 1)];
}
return 0;
}
Polecam dobry tutorial C++ http://xion.org.pl/productions/texts/coding/megatutorial/ oraz http://www.intercon.pl/~sektor/cbx/
for(int i=0;i<10;++i,cout<<'*'<
if’ w zasadzie jest tu nie potrzebny ale skoro musi być to:
[code]for(int i=0;i<10;++i,cout<<’*’<
Dzięki wielkie za pomoc.
Temat do zamknięcia