Permalänk

hjälp med nästlad loop.

Jag ska göra ett program som ser ut såhär;

Ange antal rader( ange 0 för avslut): 3
*
**
***
Ange antal rader( ange 0 för avslut): 6
*
**
***
****
*****
******

Men förstår inte hur jag ska få varje rad att utökas med en asterisk (*). Min kod so far ser ut som nedan:

#include<iostream> #include<conio.h> using namespace std; int main() { char i; int tal=1; while(tal!=0) { cout<<"ange antal rader(ange 0 för avslut):"; cin>>tal; for(int antal=1;antal<=tal;antal++) { for(int i=1;i<=tal;i++) { cout<<"*"; } cout<<endl; } } cout<<"program slut"<<endl; getch(); return 0; }

Permalänk
Hedersmedlem

Säger såhär mycket. Den inre loopen ska skriva ut lika många asterix som den rad den yttre loopen är i.

Kan du tyda vad jag skrev och tänker efter lite så borde det gå bra.

Permalänk
Skrivet av Shimonu:

Säger såhär mycket. Den inre loopen ska skriva ut lika många asterix som den rad den yttre loopen är i.

Kan du tyda vad jag skrev och tänker efter lite så borde det gå bra.

tack, men det står helt still i huvudet just nu, suttit och pulat med den här uppgiften i 2 dar nu(!), vet inte vad jag ska skriva i den inre loopen för att göra just det där.

Programmering är nog inget för mig.

Om du inte vill ge mig lösningen så vore jag tacksam för några fler tips, är koden jag har nu helt fel eller är det bara små ändringar som behöver göras? Det är ju inte som att jag inte försökt själv , svettats som satan med den här kursen och det här är det sista jag behöver klara av för att få godkänt, och den ska in idag.

Permalänk
Hedersmedlem

Den inre loopen ska börja på 0. Om den sen går så långt som den rad du är på så blir det rätt. Så först kommer den börja på 0 och ska inte bli större eller lika med 1. Den kommer skriva en asterix. Nästa gång kommer den börja på 0 och inte bli större eller lika med 2.....

Permalänk
Medlem
Skrivet av jahsoldier:

Jag ska göra ett program som ser ut såhär;

Ange antal rader( ange 0 för avslut): 3
*
**
***
Ange antal rader( ange 0 för avslut): 6
*
**
***
****
*****
******

Men förstår inte hur jag ska få varje rad att utökas med en asterisk (*). Min kod so far ser ut som nedan:

#include<iostream> #include<conio.h> using namespace std; int main() { char i; int tal=1; while(tal!=0) { cout<<"ange antal rader(ange 0 för avslut):"; cin>>tal; for(int antal=1;antal<=tal;antal++) { for(int i=1;i<=tal;i++) { cout<<"*"; } cout<<endl; } } cout<<"program slut"<<endl; getch(); return 0; }

Du är praktiskt taget klar(!).
Det enda som saknas är hur for-satserna är uppbyggda. Den första for-satsen är rätt, den andra behövs ändras lite.

Med andra ord ska du byta ut "tal" mot "antal" (i den andra "nästlade" for-satsen) så är det klart.

Detta för att:
Antalet stjärnor på varje rad ska vara lika med radnumret. Ex: står du på rad 4 så ska 4 stjärnor ritas ut.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Hedersmedlem

Hade inte tittat riktigt så noga på koden så lite av det jag skrev är fel. Leedow här har rätt.

Permalänk
Medlem

Går enkelt att fixa utan att köra dubbla for-loopar: (se till att lägga dit "#include <string>" i början.)

cin>>tal; str = "*"; for(int antal=1;antal<=tal;antal++) { cout << str << endl; str += "*"; }

Visa signatur