Getting an extra zero in (n+1)th row

#include
using namespace std;

int main(){
int n;
cin>>n;

int nst=1;
int nsp=2*n-1;
int nsta=1;
int j=2*n+1;
int csp;
int cst;
int row;
for(row=1;row<=j;row++){int i=n;
    for(cst=1;cst<=nst;cst++){
        cout<<i<<' ';
        i--;
    }
    for(csp=1;csp<=nsp;csp++){
        
        cout<<' '<<' ';
    }i++;
    for(cst=1;cst<=nsta;cst++){
		
        cout<<i<<' ';
        
        i++;
    }
    if(row<=n){
       
        
        nsp-=2;
        nst++;
          
        nsta++;
      
    }
    else{ 
        nsp+=2;
        nst--;
        
        nsta--;
    }
    cout<<endl;
}
cout<<endl;
return 0;

}

hi @sanyamvv33_df49c435732e7baf
In Pattern Question, there is a common method which we teach in course viz, taking nsp, nst, csp, cst and row variables.

Pattern Hack : Always first Try to first print pattern by ignoring the value to be printed then accommodate your value in that pattern. For e.g.,

         5                   5 
         5 4               4 5 
         5 4 3           3 4 5 
         5 4 3 2       2 3 4 5 
         5 4 3 2 1   1 2 3 4 5 
         5 4 3 2 1 0 1 2 3 4 5 
         5 4 3 2 1   1 2 3 4 5 
         5 4 3 2       2 3 4 5 
         5 4 3           3 4 5 
         5 4               4 5 
         5                   5 

View it as:-

         *                   * 
         * *               * * 
         * * *           * * * 
         * * * *       * * * * 
         * * * * *   * * * * * 
         * * * * * * * * * * * 
         * * * * *   * * * * * 
         * * * *       * * * * 
         * * *           * * * 
         * *               * * 
         *                   *  

Short Info about the variables:-

1. nsp (number of spaces)-> Number of spaces in very First Line of the pattern.
2. nst (number of stars)-> Number of stars in very first line of the pattern.
3. csp (counter of spaces)-> counter of spaces that will print the required number of spaces and will be initialized with 1 and incremented upto nsp.
4. cst (counter of stars)->  counter of spaces that will print the required number of stars and will be initialized with 1 and incremented upto nst.
5. rows -> It will be initialized with 1 and will go upto the total number of rows in the pattern.

In the given pattern,

  • First build an intuition that u need to work for first row and at the end of the loop need to do work for the next row.
  • For each row first you need to print your pattern in decreasing order then spaces and then the same pattern but in increasing order.
  • To build the whole pattern just repeat this work according to total number of rows. With this approach, things seems to work out easily.
    refer this -->
    https://ide.codingblocks.com/s/646298

I hope I’ve cleared your doubt. I ask you to please rate your experience here
Your feedback is very important. It helps us improve our platform and hence provide you
the learning experience you deserve.

On the off chance, you still have some questions or not find the answers satisfactory, you may reopen
the doubt.