JavaScript is required to use Bungie.net

Tema libero

Naviga in una tempesta di discussioni disparate.
Modificato da Good News: 9/14/2013 6:18:32 AM
7

Programmers of the Flood, I need some help (C++)

I just started learning how to program, using c++, 3 weeks ago, and I have one class a week, so forgive me if this is so basic that asking for help on it makes you want to kill me. I need to write a program using some nested loops to create this: * *** ***** ******* ***** *** * Two problems I have: 1. I don't know how to make the 1-3-5-7-5-3-1. My code goes 1-2-3-4-5-6-7 2. I have no idea how to make it descend once it reached the 7 asterisks. For my loops, I'm trying to use two while loops. One for the ascending part of the triangle, and one for the descending. Both of them have for loops nested inside. [spoiler]#include <iostream> using namespace std; int main() { int counter=1; int x = 0; while(counter <= 7) { for (x=0; x < counter; x++) { cout <<"*"; } cout << endl; counter++; } //descending part while (counter >= 7) { for (x=0; x > counter; x--) { cout<<"*"; } cout << endl; counter--; } return 0; } [/spoiler] So as I said, I don't know how to make the descending part of the triangle. My code is indicative enough of that. Anyone have any advice? For both or either problems?

Lingua:

 

Fate i bravi. Prima di postare date un'occhiata al nostro codice di condotta. Annulla Modifica Crea squadra Invia

  • [quote] #include <iostream> #include <iomanip> using namespace std; int main(){ cout.fill('*'); for(int i=1,j=2; i>0; i+=j,j*=((i%7)==0)?-1:1){ cout << setw(i + 1) << '\n'; } return 0; }[/quote]http://ideone.com/yrVrle You can replace the setw call with another loop to output character-by-character if you require the nesting.

    Lingua:

     

    Fate i bravi. Prima di postare date un'occhiata al nostro codice di condotta. Annulla Modifica Crea squadra Invia

    1 Rispondi
    • Just set it to wumbo

      Lingua:

       

      Fate i bravi. Prima di postare date un'occhiata al nostro codice di condotta. Annulla Modifica Crea squadra Invia

    • Modificato da Seven: 9/14/2013 2:35:15 PM
      I would have approached the problem differently in the first place. There's whole new code below so don't look at it if you want to fix it yourself. [spoiler]#include <iostream> using namespace std; int main() { int counter=1; bool atSeven=false; while(counter > 0) { if(counter == 7) atSeven=true; for (int x=0; x < counter; x++) { cout <<"*"; } cout << endl; if(!atSeven) counter+=2; else counter-=2; } return 0; } [/spoiler]

      Lingua:

       

      Fate i bravi. Prima di postare date un'occhiata al nostro codice di condotta. Annulla Modifica Crea squadra Invia

    • Add an if condition for the for loop and endl output that checks if counter is odd. If(counter%2) Do not include counter-- in if block As for the descending part, before running the while loop, decrement counter by 1 otherwise you will get two lines of seven *. In the while loop, use counter>0, then add the if statement to check for odd number. Then. In the for loop use x=counter-1;x>=0;x-- What you r currently doing in the for loop is assignong value 0 to x then decrementing it on every iteration and checking if it is greater than a positive num which will never happen, thus resulting in an infinite loop..

      Lingua:

       

      Fate i bravi. Prima di postare date un'occhiata al nostro codice di condotta. Annulla Modifica Crea squadra Invia

      1 Rispondi
      • Modificato da Cast: 9/14/2013 6:54:46 AM
        After the first loop structure, counter is equal to 8. The second while loop loops for while counter is greater or equal to 7. After it gets decremented the loop terminates. Only producing two lines.

        Lingua:

         

        Fate i bravi. Prima di postare date un'occhiata al nostro codice di condotta. Annulla Modifica Crea squadra Invia

      • Have you tried Xbox.com?

        Lingua:

         

        Fate i bravi. Prima di postare date un'occhiata al nostro codice di condotta. Annulla Modifica Crea squadra Invia

      • bamp

        Lingua:

         

        Fate i bravi. Prima di postare date un'occhiata al nostro codice di condotta. Annulla Modifica Crea squadra Invia

      Non ti è permesso visualizzare questo contenuto.
      ;
      preload icon
      preload icon
      preload icon