Computer >> Máy Tính >  >> Lập trình >> lập trình C

In chỉ mục của các cột được sắp xếp theo số lượng 0 trong Chương trình Ma trận Cho trước trong C.

Cho một mảng có kích thước NxM trong đó N số hàng và M số cột và nhiệm vụ là in số lượng số 0 trong mọi cột của ma trận tương ứng sau khi thực hiện thao tác sắp xếp trên cơ sở số lượng số không có trong bất kỳ cột nào.

Ví dụ:nếu 1 st cột chứa 1 số không và 2 nd cột không chứa bất kỳ số 0 nào và 3 rd cột chứa 2 số 0 thì kết quả phải là - 3 1 2.

Ví dụ

Input:
   0 0 0
   1 1 1
   1 0 1
Output: 1 3 2

Giải thích

In chỉ mục của các cột được sắp xếp theo số lượng 0 trong Chương trình Ma trận Cho trước trong C.

Lưu ý - ma trận được coi là bắt đầu từ chỉ số 1.

Ví dụ

#include <bits/stdc++.h>
#define row 3
#define col 3
using namespace std;
void sorting(int arr[row][col]){
   vector<pair<int, int> >count_zero;
   for (int i = 0; i < col; i++){
      int count = 0;
      for (int j = 0; j < row; j++){
         if (arr[j][i] == 0)
            count++;
         }
         count_zero.push_back(make_pair(count, i));
      }
   sort(count_zero.begin(), count_zero.end());
   for (int i = 0; i < col; i++)
      cout<< count_zero[i].second + 1 << " ";
}
int main(){
   int array[row][col] = {
      { 0, 0, 0 },
      { 1, 1, 1 },
      { 1, 0, 1 }
   };
   cout<<"sorted order of zeroes count is : ";
   sorting(array);
   return 0;
}

Đầu ra

nếu chúng ta chạy chương trình trên thì nó sẽ tạo ra kết quả sau

sorted order of zeroes count is : 1 3 2