title: C Bubble Sort algorithm
body: <p>I have the following code which sorts the strings using bubble sort logic. The part that I am confused about is the for loop which Im not sure why i is set to one and why J is iterated until it is less than n-j:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;string.h&gt;
  void main()
  {
      char name[25][50],temp[25];
      int n, i, j;
      printf("\n\nSorts the strings of an array using bubble sort :\n");
      printf("-----------------------------------------------------\n");
      printf("Input number of strings :");
      scanf("%d",&amp;n);
      printf("Input string %d :\n",n);
      for(i=0; i&lt;=n; i++)
      {
          fgets(name[i], sizeof name, stdin);
      }
  
      /*Logic Bubble Sort*/
      for(i=1; i&lt;=n; i++)
      {
          for(j=0; j&lt;=n-i; j++)
          {
             if (strcmp(name[j],name[j+1])&gt;0)
             {
                 strcpy(temp,name[j]);
                 strcpy(name[j],name[j+1]);
                 strcpy(name[j+1],temp);
             }
          }
      }
      printf("The strings appears after sorting :\n");
      for(i=0;i&lt;=n;i++)
          printf("%s\n",name[i]);
  }
  </code></pre>