Tuesday, 9 June 2015

Program which shows content of a given 2D array


Code for Program which shows content of a given 2D array in C++ Programming



 



 



 
# include <iostream.h>
 # include <fstream.h>
 # include <string.h>
 # include <stdlib.h>
 # include <conio.h>

 int main( )
    {
       clrscr( );

       fstream File("CP-13.txt",ios::in|ios::nocreate);

       if(!File)
      {
         cout<<"Unable to open the input file."<<endl;
         cout<<"Press any key to exit."<<endl;

         getch( );
         exit(EXIT_FAILURE);
      }

       char Data[100]={NULL};

       do
      {
         strset(Data,NULL);

         File.getline(Data,80,'\n');

         if(strcmpi(Data,"0")==0)
        break;

         char *Ptr=NULL;

         int rows=0;
         int columns=0;

         Ptr=strtok(Data," ");
         rows=atoi(Ptr);

         Ptr=NULL;
         Ptr=strtok(NULL,"\n");
         columns=atoi(Ptr);

         char Array2d[50][50]={NULL};

         for(int count_1=0;count_1<rows;count_1++)
        File.getline(Array2d[count_1],80);

         int direction=0;

         do
        {
           char Temp[50][50]={NULL};

           if(direction==0)
              {
             cout<<Array2d[0];

             for(int count_2=1;count_2<rows;count_2++)
                strcpy(Temp[(count_2-1)],Array2d[count_2]);

             rows--;
              }

           elseif(direction==1)
              {
             for(int count_3=0;count_3<rows;count_3++)
                {
                   cout<<Array2d[count_3][(columns-1)];

                   Array2d[count_3][(columns-1)]=NULL;
                }

             for(int count_4=0;count_4<rows;count_4++)
                strcpy(Temp[count_4],Array2d[count_4]);

             columns--;
              }

           elseif(direction==2)
              {
             cout<<strrev(Array2d[(rows-1)]);

             for(int count_5=0;count_5<(rows-1);count_5++)
                strcpy(Temp[count_5],Array2d[count_5]);

             rows--;
              }

           elseif(direction==3)
              {
             for(int count_6=(rows-1);count_6>=0;count_6--)
                cout<<Array2d[count_6][0];

             for(int count_7=0;count_7<rows;count_7++)
                {
                   for(int count_8=1;count_8<columns;count_8++)
                  Temp[count_7][(count_8-1)]=Array2d[count_7][count_8];
                }

             columns--;
              }

           direction++;

           if(direction==4)
              direction=0;

           for(int count_9=0;count_9<50;count_9++)
              {
             strset(Array2d[count_9],NULL);
             strcpy(Array2d[count_9],Temp[count_9]);
              }

           if(rows==0)
              break;
        }
         while(1);

         cout<<endl;
      }
       while(1);

       File.close( );

       getch( );
       return 0;
    }

No comments:

Post a Comment