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

Cのqsort()のコンパレータ関数


Cでは、qsort()関数を取得します。これは、クイックソート手法を使用して配列をソートするために使用されます。この関数では、コンパレータ関数を渡す必要があります。このコンパレータ関数は2つの引数を取ります。次に、それらを比較し、それらの間の相対的な順序を取得します。これらの2つの引数はポインターであり、constvoid*にキャストされた型です。構文は次のようになります-

int comparator(const void* p1, const void* p2);

戻り値には3つのタイプがあります-

  • 0未満。p1が指す要素は2番目の要素の前に配置されます。
  • 0に等しい。2つの値は同じです。
  • 0より大きい。p1が指す要素は2番目の要素の後に続きます

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct {
   char title[50];
   int pages;
   float price;
}
book;
int compareBook(book b1, book b2){
   if(b1.price < b2.price){
      return 0;
   }
   return 1;
}
main() {
   int i;
   book book_arr[5];
   strcpy(book_arr[0].title, "C Programming");
   book_arr[0].pages = 260;
   book_arr[0].price = 450;
   strcpy(book_arr[1].title, "DBMS Guide");
   book_arr[1].pages = 850;
   book_arr[1].price = 775;
   strcpy(book_arr[2].title, "Learn C++");
   book_arr[2].pages = 350;
   book_arr[2].price = 520;
   strcpy(book_arr[3].title, "Data Structures");
   book_arr[3].pages = 380;
   book_arr[3].price = 430;
   strcpy(book_arr[4].title, "Learn Python");
   book_arr[4].pages = 500;
   book_arr[4].price = 300;
   qsort((void*)book_arr, 5, sizeof(book_arr[0]), compareBook);
   for(i = 0; i<5; i++) {
      printf("%s\t\t%d\t\t%f\n",book_arr[i].title, book_arr[i].pages, book_arr[i].price);
   }
}

出力

Learn Python             500       300.000000
Data Structures          380       430.000000
C Programming            260       450.000000
Learn C++                350       520.000000
DBMS Guide               850       775.000000

  1. PHP pi()関数

    定義と使用法 pi ()関数は数学定数Πの値を返します。 PHPで定義された事前定義された定数に等しいfloat値3.14159265359を返します--M_PI 構文 pi ( void ) : float パラメータ この関数はパラメータを必要としません 戻り値 PHP pi()関数は、数学定数Πを返し、事前定義された数学定数M-PIと同じです。 M_PIを使用する代わりに、数式でpi()関数を使用できます。 PHPバージョン この関数は、PHPバージョン4.x、PHP 5.x、およびPHP7.xで使用できます。 例 次の例では、円の面積の計算にpi()関数を使用しています。

  2. Python Pandas – Pandas DataFrame tail()関数の使用方法

    Pythonコードを記述して、30000〜70000の価格列の値を検索し、 products.csvの最後の3行のid列とproduct列を出力します。 ファイル。 ダウンロード ここにproducts.csvファイルがあります。 価格列の値が30000〜70000で、id列とproduct列の最後の3行の結果は-    id product 79 80 Truck 81 82 Bike 98 99 Truck ソリューション1 products.csvからデータを読み取ります ファイルを作成してdfに割り当てます df = pd.read_csv('