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

1つの配列で2つの半分の操作を実行するCプログラム


問題

Nの1次元配列を受け入れるプログラムを作成します 要素と2つの半分に分割します。後で、前半を昇順で並べ替え、後半を降順で並べ替えます。

解決策

Cプログラミング言語で1つの配列の2つの半分で2つの操作を実行するソリューションを以下に説明します-

前半を昇順で並べ替えるために使用されるロジックは次のとおりです

for (i=0; i<b; ++i){
   for (j=i+1; j<b; ++j){
      if (number[i] > number[j]){
         a = number[i];
         number[i] = number[j];
         number[j] = a;
      }
   }
}

後半を降順で並べ替えるために使用されるロジック 次のとおりです-

for (i=b; i<n; ++i){
   for (j=i+1; j<n; ++j){
      if (number[i] < number[j]){
         a = number[i];
         number[i] = number[j];
         number[j] = a;
      }
   }
}

配列を2つに分割し、それに応じて印刷するために使用されるロジックを以下に示します-

  • 前半の昇順
for (i=0; i<b; ++i)
printf ("%d ",number[i]);
  • 下半期の降順
for(i=b;i<n;i++)
printf("%d ",number[i]);

以下は、単一の配列で2つの半分の2つの操作を実行するためのCプログラムです。 −

#include<stdio.h>
void main(){
   int i,j,a,n,b,number[30];
   printf ("Enter the value of N\n");
   scanf ("%d", &n);
   b = n/2;
   printf ("Enter the numbers \n");
   for (i=0; i<n; ++i)
      scanf ("%d",&number[i]);
      for (i=0; i<b; ++i){
         for (j=i+1; j<b; ++j){
            if (number[i] > number[j]){
               a = number[i];
               number[i] = number[j];
               number[j] = a;
         }
      }
   }
   for (i=b; i<n; ++i){
      for (j=i+1; j<n; ++j){
         if (number[i] < number[j]){
            a = number[i];
            number[i] = number[j];
            number[j] = a;
         }
      }
   }
   printf (" The 1st half numbers\n");
   printf (" arranged in asc\n");
   for (i=0; i<b; ++i)
      printf ("%d ",number[i]);
   printf("\nThe 2nd half Numbers\n");
   printf("order arranged in desc.order\n");
   for(i=b;i<n;i++)
      printf("%d ",number[i]);
}

出力

上記のプログラムを実行すると、次の結果が得られます-

Enter the value of N

10
Enter the numbers
20
34
23
11
45
56
78
98
76
54
The 1st half numbers
arranged in asc
11 20 23 34 45
The 2nd half Numbers
order arranged in desc.order
98 78 76 56 54

  1. 配列を逆にするCプログラムを書く

    配列は、共通の名前で保存される関連アイテムのグループです。 構文 配列を宣言するための構文は次のとおりです- datatype array_name [size]; 初期化 配列は宣言時に初期化することもできます- int a[5] = { 10,20,30,40,50}; Cの逆配列 スワッピング手法を使用して配列を逆にすることができます。 たとえば、「P」が4つの要素を持つ整数の配列である場合- P[0] = 1, P[1] = 2, P[2] = 3 and P[3]=4 次に、反転した後- P[0] = 4, P[1] = 3, P[2] = 2 and P[3]=1

  2. Pythonプログラムの2つ以上(または配列)の数値のGCD

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 数の配列が与えられ、最大公約数を見つける必要があります。 3つ以上の数のgcdを見つける必要がある場合、gcdは、引数として提供されるすべての数に共通の素因数の積に等しくなります。また、引数の数のペアのGCDを繰り返し取得することによって計算することもできます。 ここでは、後者のアプローチを実装します では、実装を見てみましょう 例 def findgcd(x, y):    while(y):       x, y = y, x % y