Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

Cプログラムの指定された行列のゼロの数でソートされた列のインデックスを出力します。


サイズNxMの配列が与えられ、N行数とM列数であり、タスクは、任意の列に存在するゼロの数に基づいてソート操作を実行した後、対応する行列のすべての列のゼロの数を出力することです。

たとえば、1番目の st 列には1つのゼロと2つの nd が含まれます 列にゼロと3番目の rd が含まれていません 列に2つのゼロが含まれている場合、結果は− 312になります。

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

  1. コーナー要素とその合計をCプログラムの2次元行列に出力します。

    サイズが2X2の配列を考えると、配列に格納されているすべてのコーナー要素の合計を出力することが課題になります。 行「r」と列「c」が0から行と列を開始する行列mat[r][c]を想定すると、そのコーナー要素は次のようになります。 mat [0] [0]、mat [0] [c-1]、mat [r-1] [0]、mat[r-1][c-1]。ここでのタスクは、これらのコーナー要素を取得し、それらのコーナー要素を合計することです。つまり、mat [0] [0] + mat [0] [c-1] + mat [r-1] [0] + mat [r-1] [c-1]、結果を画面に印刷します。 例 Input

  2. Cプログラムで、配列内の最後に出現する要素を相対的な順序で出力します。

    要素を含む配列a[]が与えられ、タスクは、リスト内の指定された要素の最後の出現を出力することです。ここでは、重複する要素を削除するだけでなく、配列内の要素が最後に発生したときの順序を維持する必要があります。 6つの要素の配列があり、いくつかの重複する値、つまり{1,3、2、3、1、2}も含まれているため、結果は312の形式になります。 例 Input: a[]={4,2,2,4,1,5,1} Output : 2 4 5 1 アルゴリズム START Step 1-> Declare function void printelements(int a[], int n) &nbs