Informatică, întrebare adresată de danycobzac, 8 ani în urmă

Pentru tabloul bidimensional dat din n linii şi m coloane Să se ordoneze liniile tabloului în ordine ascendentă a numărului de elemente negative în fiecare linie.

Răspunsuri la întrebare

Răspuns de Levi20
2

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int mat[101][101],v[101],n,m;

   cin>>n>>m;

   for(int i=1;i<=n;i++)

   {

       int nr=0;

       for(int j=1;j<=m;j++)

       {

       cin>>mat[i][j];

       if(mat[i][j]<0)

           nr++;

       }

       v[i]=nr;

   }

   for(int i=1;i<n;i++)

   {

       int Max=v[i],k=i;

   for(int j=i+1;j<=n;j++)

       if(v[j]>Max)

   {

       k=j;

       Max=v[j];

   }

   if(k!=i)

   {

   for(int d=1;d<=m;d++)

   {

       int aux;

       aux=mat[i][d];

       mat[i][d]=mat[k][d];

       mat[k][d]=aux;

   }

   v[k]=v[i];

   }

   }

   for(int i=1;i<=n;i++)

   {

       for(int j=1;j<=m;j++)

       cout<<mat[i][j]<<" ";

       cout<<"\n";

   }

   return 0;

}

Explicație:

Banuiesc ca ascendent se refera in a ordona liniile in mod crescator de jos in sus. Eu pentru situatia aceasta am scris codul

Alte întrebări interesante