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 サイトの他の関連記事を参照してください。