ホームページ  >  記事  >  バックエンド開発  >  単一の配列に対して演算の半分を実行する C プログラム

単一の配列に対して演算の半分を実行する C プログラム

WBOY
WBOY転載
2023-08-27 13:05:06460ブラウズ

単一の配列に対して演算の半分を実行する C プログラム

質問

N 要素の 1 次元配列を取得し、それを半分に分割するプログラムを作成してください。その後、前半を昇順、後半を降順に並べ替えます。

解決策

単一配列の 2 つの半分に対して 2 つの演算を実行する解決策は、C 言語で次のように説明されます。 -

前半の昇順ソートのロジックは次のとおりです。次のように -

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 つの操作を実行する C プログラムの 2 つの部分です。

#include<stdio.h>
void main(){
   int i,j,a,n,b,number[30];
   printf ("Enter the value of N</p><p>");
   scanf ("%d", &n);
   b = n/2;
   printf ("Enter the numbers </p><p>");
   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</p><p>");
   printf (" arranged in asc</p><p>");
   for (i=0; i<b; ++i)
      printf ("%d ",number[i]);
   printf("</p><p>The 2nd half Numbers</p><p>");
   printf("order arranged in desc.order</p><p>");
   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

以上が単一の配列に対して演算の半分を実行する C プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。