Динамические матрицы.

Пример 1:

Сортировка строк целочисленной динамической матрицы по возрастанию максимальных элементов строк. Порядок чисел в каждой строке не меняется.

Решение от преподавателя:

     void Myprint (int **D,int *S,int ,int);

     int main()

    {

       int n,  m;               int **d;            randomize();

       n=random(5)+2;   m=random(5)+2;

       d=new int*[n];             

       for(int i=0;i

       for(int i=0;i

            for(int j=0;j

                 d[i][j]=random(15)-6;

       int *s,Mymax,Mymin,nmin;

       s=new int[n];    

       for(int i=0;i

           {  Mymax=d[i][0];

               for(int j=0;j

                      if (d[i][j]>Mymax)   Mymax=d[i][j];

               s[i]=Mymax;

          }

        Myprint(d,s,n,m) ; 

        for(int start=0;start<=n-2;start++)

         {  

           Mymin=s[start];   nmin=start;

           for(int i=start;i

                   if(s[i]

                              { Mymin=s[i];    nmin=i;

                              }

 int *p;             p=d[start];          d[start]=d[nmin];       d[nmin]=p;

                int t;          t=s[start];  s[start]=s[nmin];  s[nmin]=t;

        }

   Myprint(d,s,n,m) ;

   getch();      return 0;

}

 

void Myprint (int **D,  int *S,  int N,  int M)

   {for(int i=0;i

       {  printf("\n");

        for(int j=0;j

            printf("%5d",D[i][j]);

        printf("  => %5d",S[i]);

     }

       printf("\n");

   }

Пример 2:

Создать  в памяти нижний треугольник квадратной “матрицы” относительно главной диагонали. То есть в первой строке резервируем память для одного элемента, во второй строке – для двух и т. д.

Решение от преподавателя:

int main()

int n1;   cout<<"Size1=>";    

    cin>>n1;  

    int **arr;

     arr= new int*[n1];    

    for (int i=0;i

       arr[i]=new int[i+1];    

    float s;

    for (int i=0; i

      { s=0;

        for (int *q=arr[i], j=0; q< arr[i]+i+1; q++, j++)

              { *q=(i+1)*(j+1);

                 s+=*q;

                 cout.width(6); 

                  cout<<  (*q);

                } 

      for (int j=0;j

          {      arr[i][j]=(i+1)*(j+1);

                  s+=arr[i][j];

                  cout.width(6);          

                  cout<

          } */       

gotoxy((n1+1)*6, wherey());

         cout<<"Average=>  "<

       }

 for (int i=0;i

   delete[]arr[i];

 delete[]arr;

  getch();      return 0;

 }

Пример 3:

Создание динамической “матрицы” с различным количеством элементов в строках. В каждой строке резервируем память для количества элементов, которое вводим с экрана.

Решение от преподавателя:

int main()

{    int n1;    cout<<"Size1=>";     cin>>n1;  

int *arr_of_size;

arr_of_size=new int[n1];

cout<<"Input the size of each row";

for (int i=0;i>arr_of_size[i];

int **arr;

arr= new int*[n1];    

for (int i=0;i

  arr[i]=new int[arr_of_size[i]];  

float s;

  for (int i=0; i

  { s=0;

    for (int j=0;j

    {

      arr[i][j]=(i+1)*(j+1);

      s+=arr[i][j];

       cout.width(6);          

      cout<

    }

   gotoxy((arr_of_size[i]+1)*6, wherey());

   if (arr_of_size[i]==0)

   cout<<"No elements";

   else

   cout<<"Average=>  "<

   }

  for (int i=0;i

   delete[]arr[i];

 delete[]arr;

 delete []arr_of_size;  

 getch();               return 0;

 }

Не нашли нужного вам решения? Оставьте заявку и наши авторы быстро и качественно помогут вам с решением.
Оставить заявку
Работа вам нужна срочно. Не волнуйтесь, уложимся!

Заполните, пожалуйста, данные для автора:

  • 22423 авторов готовы помочь тебе.
  • 2402 онлайн