配列を最大-最小形式で再配置する C++ プログラム
整数の配列を取得します。これは、ソート済み/ソートなしの方法で配置できます。タスクは、まず配列を並べ替え (値が並べ替えられていない場合)、次に配列の最初の要素が最大値、2 番目の要素が最小値、3 番目の要素が最大値になるように配列を配置することです。要素は配列です。 2 番目の最大値、4 番目が 2 番目の最小値、というようになります。
この状況のさまざまな入出力シナリオを見てみましょう -
Input - int arr[] = {7, 5, 2, 3, 4, 9, 10, 5 }
出力− ソート前の配列: 2 3 4 5 5 7 9 10 配列を最大-最小形式で次のように並べ替えます: 10 2 9 3 7 4 5 5
説明- 値 {7, 5, 2 を含む整数型の配列を取得します。 、3、4、9、10、5}。まず、配列をソートすると、{2 3 4 5 5 7 9 10} になります。次に、最大の要素を arr[0] (つまり 10) に配置し、次に最小の要素を arr[1] (つまり 2) に配置し、次に 2 番目に大きな要素を arr[2] (つまり 9) に配置します。類推。最終的な結果の配列は 10 2 9 3 7 4 5 5
Input− int arr[] = {2, 4, 1, 6, 7}
になります。 出力- ソート前の配列: 1、2、4、6、7 配列を最大-最小形式で次のように並べ替えます: 7、1、6、2、4
説明- 値 {2, 4, を含む整数型の配列を取得します。 1、6、7}。まず配列をソートすると、結果は {1,2,4,6,7} になります。次に、最大の要素を arr[0] に配置します。 7、次に arr[1] の最小要素 (1)、次に arr[2] の 2 番目に大きい要素 (6) というように続きます。最終的な配列は 7、1、6、2、4 になります。
次のプログラムで使用するメソッドは次のとおりです。
整数型の要素の配列を入力し、配列サイズの値を計算します。 arr[] と配列サイズを引数として関数に渡して、C STL の sort メソッドを呼び出します。
- #並べ替え前に配列を出力し、関数 Rearr_Max_Min(arr, size) を呼び出します。
- 関数 Rearr_Max_Min(arr, size) 内
- 1 つの変数を max として宣言して size - 1 に設定し、別の変数を min として宣言して 0 に設定します。変数を max_val として宣言し、arr[size - 1] 1 に設定します。
- i が size 未満になるまで、i から 0 まで FOR のループを開始します。ループ内で IF i % 2 = 0 を確認し、arr[i] を arr[i] (arr[max] % max_val) * max_val に設定し、最大値を 1 減分します。
- それ以外の場合は、arr[i] を arr[i] (arr[min] % max_val) * max_val に設定し、min を 1 ずつ増やします。
- i が size 未満になるまで、i から 0 まで FOR のループを開始します。ループ内で、arr[i] を arr[i] / max_val
##Example
#include <bits/stdc++.h> using namespace std; void Rearr_Max_Min(int arr[], int size){ int max = size - 1; int min = 0; int max_val = arr[size - 1] + 1; for (int i = 0; i < size; i++){ if (i % 2 == 0){ arr[i] += (arr[max] % max_val) * max_val; max--; } else{ arr[i] += (arr[min] % max_val) * max_val; min++; } } for(int i = 0; i < size; i++){ arr[i] = arr[i] / max_val; } } int main(){ //input an array int arr[] = {7, 5, 2, 3, 4, 9, 10, 5 }; int size = sizeof(arr) / sizeof(arr[0]); //sort an array sort(arr, arr + size); //print the original Array after sorting cout<<"Array before Arrangement: "; for (int i = 0; i < size; i++){ cout << arr[i] << " "; } //calling the function to rearrange the array Rearr_Max_Min(arr, size); //print the array after rearranging the values cout<<"\nRearrangement of an array in maximum minimum form is: "; for(int i = 0; i < size; i++){ cout<< arr[i] << " "; } return 0; }
Output
に設定します。上記のコードを実行すると、次の出力が生成されます
Array before Arrangement: 2 3 4 5 5 7 9 10 Rearrangement of an array in maximum minimum form is: 10 2 9 3 7 4 5 5
以上が配列を最大-最小形式で再配置する C++ プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









C言語データ構造:ツリーとグラフのデータ表現は、ノードからなる階層データ構造です。各ノードには、データ要素と子ノードへのポインターが含まれています。バイナリツリーは特別なタイプの木です。各ノードには、最大2つの子ノードがあります。データは、structreenode {intdata; structreenode*left; structreenode*右;}を表します。操作は、ツリートラバーサルツリー(前向き、順序、および後期)を作成します。検索ツリー挿入ノード削除ノードグラフは、要素が頂点であるデータ構造のコレクションであり、近隣を表す右または未照明のデータを持つエッジを介して接続できます。

ファイルの操作の問題に関する真実:ファイルの開きが失敗しました:不十分な権限、間違ったパス、およびファイルが占有されます。データの書き込みが失敗しました:バッファーがいっぱいで、ファイルは書き込みできず、ディスクスペースが不十分です。その他のFAQ:遅いファイルトラバーサル、誤ったテキストファイルエンコード、およびバイナリファイルの読み取りエラー。

C35の計算は、本質的に組み合わせ数学であり、5つの要素のうち3つから選択された組み合わせの数を表します。計算式はC53 = 5です! /(3! * 2!)。これは、ループで直接計算して効率を向上させ、オーバーフローを避けることができます。さらに、組み合わせの性質を理解し、効率的な計算方法をマスターすることは、確率統計、暗号化、アルゴリズム設計などの分野で多くの問題を解決するために重要です。

C言語関数は、コードモジュール化とプログラム構築の基礎です。それらは、宣言(関数ヘッダー)と定義(関数体)で構成されています。 C言語は値を使用してパラメーターをデフォルトで渡しますが、外部変数はアドレスパスを使用して変更することもできます。関数は返品値を持つか、または持たない場合があり、返品値のタイプは宣言と一致する必要があります。機能の命名は、ラクダを使用するか、命名法を強調して、明確で理解しやすい必要があります。単一の責任の原則に従い、機能をシンプルに保ち、メンテナビリティと読みやすさを向上させます。

C言語関数名の定義には、以下が含まれます。関数名は、キーワードとの競合を避けるために、明確で簡潔で統一されている必要があります。関数名にはスコープがあり、宣言後に使用できます。関数ポインターにより、関数を引数として渡すか、割り当てます。一般的なエラーには、競合の命名、パラメータータイプの不一致、および未宣言の関数が含まれます。パフォーマンスの最適化は、機能の設計と実装に焦点を当てていますが、明確で読みやすいコードが重要です。

C言語関数は再利用可能なコードブロックです。彼らは入力を受け取り、操作を実行し、結果を返すことができます。これにより、再利用性が改善され、複雑さが軽減されます。関数の内部メカニズムには、パラメーターの渡し、関数の実行、および戻り値が含まれます。プロセス全体には、関数インラインなどの最適化が含まれます。単一の責任、少数のパラメーター、命名仕様、エラー処理の原則に従って、優れた関数が書かれています。関数と組み合わせたポインターは、外部変数値の変更など、より強力な関数を実現できます。関数ポインターは機能をパラメーターまたはストアアドレスとして渡し、機能への動的呼び出しを実装するために使用されます。機能機能とテクニックを理解することは、効率的で保守可能で、理解しやすいCプログラムを書くための鍵です。

CとC#には類似点がありますが、それらは完全に異なります。Cはプロセス指向の手動メモリ管理、およびシステムプログラミングに使用されるプラットフォーム依存言語です。 C#は、デスクトップ、Webアプリケーション、ゲーム開発に使用されるオブジェクト指向のガベージコレクション、およびプラットフォーム非依存言語です。

C言語マルチスレッドプログラミングガイド:スレッドの作成:pthread_create()関数を使用して、スレッドID、プロパティ、およびスレッド関数を指定します。スレッドの同期:ミューテックス、セマフォ、および条件付き変数を介したデータ競争を防ぎます。実用的なケース:マルチスレッドを使用してフィボナッチ数を計算し、複数のスレッドにタスクを割り当て、結果を同期させます。トラブルシューティング:プログラムのクラッシュ、スレッドの停止応答、パフォーマンスボトルネックなどの問題を解決します。
