質問の例&
どこにあるの5-1大理石で
書式#include <cstdioを> する#include <アルゴリズム> 使用して名前空間はstdを、const int型 MAXN = 10000 ; INT のmain() { int型 N、Q、X、[MAXN]、カセ= 0 。一方、(scanf関数(" %D%D "、&N、&Q)== 2 && N){ のprintf(" CASE#1%のD:\ n "、++ 加瀬)。以下のために(INT iが= 0 ; i = N;!++ I){ scanf関数(" %d個"、& A [I]); //は、大理石のn個の数字読み取り } ソート(A、A + N)を; // ソート しながら(Q - ){ //は見つける scanfの(" %のD "、およびX)。 INT P = LOWER_BOUND(N-+、X) - ; // ソートされた配列に見たX IF([P] == X){ のprintf(" %のDの%D ATが\ N-見出さ"、 X、P + 1 ); } そうでは{ printf関数は、(" %Dず\ N-を発見しました"、 バツ); } } } 戻り 0 。 }
「乱数、配列ポインタ」の一例。
#include <cstdioを> する#include <アルゴリズム> の#include <cstdlib> の#include <ctimeの> 使用して 名前空間をSTD。 const int型 MAXN = 10000 ; int型[MAXN]。 ボイドプリントアレイ() { 用(INT iは= 0、I =!10 ; ++ I){ のprintf(" %dの" 、[I])。 } のprintf(" \ n " ); } int型のmain() { にsrand((INT)時間(0)); // 乱数シード のために(INT I = 0!= I; 10 ; ++ I)は{ A [I] = RAND()%100 ; // 0100との間に生成された)の乱数 } プリントアレイ(); // => 68 94 34 28 88 82 28 16 91である2 ソート( + 10); // ソート索引の0へ、10)元素 プリントアレイ(); / / => 16 28 28 2 68 82 88 91 94 34である のprintf(" %D%D \ N- "、A、A&[ 0 ]); //=> 4415552 4415552 のprintf(" %dの\ n "、LOWER_BOUND(+ 10、[ 2 ]))。// => 4415560 のprintf(" %dの\ n "、&[ 2 ])。// => 4415560 のprintf(" %D \ n "、&[ 2 ] - )。// => 2 のための(INT iは= 0、I =!3 ; ++ I){ のprintf(" %dの"、および[I])。 } //=> 4415552 4415556 4415560 のprintf(" \ n " ); printf(" %D%D "、*(+ 2)、[ 2 ])。// 28 28 リターン 0 ; }