Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

พิมพ์ดัชนีของคอลัมน์ที่จัดเรียงตามจำนวนศูนย์ในเมทริกซ์ที่ระบุในโปรแกรม C


กำหนดอาร์เรย์ขนาด NxM โดยที่ N จำนวนแถวและจำนวนคอลัมน์ M และภารกิจคือการพิมพ์จำนวนศูนย์ในทุกคอลัมน์ของเมทริกซ์ที่สอดคล้องกันหลังจากดำเนินการจัดเรียงตามจำนวนศูนย์ที่มีอยู่ในคอลัมน์ใดๆ

ตัวอย่างเช่น ถ้า 1 st คอลัมน์มี 1 ศูนย์และ 2 nd คอลัมน์ไม่มีเลขศูนย์และ 3 rd คอลัมน์มีศูนย์ 2 ตัว ผลลัพธ์ควรเป็น − 3 1 2

ตัวอย่าง

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

คำอธิบาย

พิมพ์ดัชนีของคอลัมน์ที่จัดเรียงตามจำนวนศูนย์ในเมทริกซ์ที่ระบุในโปรแกรม C

หมายเหตุ − เมทริกซ์ถือว่าเริ่มต้นจากดัชนี 1

ตัวอย่าง

#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;
}

ผลลัพธ์

หากเรารันโปรแกรมข้างต้น มันจะสร้างผลลัพธ์ดังต่อไปนี้

sorted order of zeroes count is : 1 3 2