Tulis atur cara untuk mengambil tatasusunan satu dimensi elemen N dan bahagikannya kepada dua. Kemudian, susun babak pertama dalam tertib menaik dan separuh kedua dalam tertib menurun.
Penyelesaian untuk melaksanakan dua operasi pada dua bahagian dalam tatasusunan tunggal dijelaskan dalam bahasa C seperti berikut -
Logik untuk mengisih separuh pertama dalam tertib menaik adalah seperti berikut -
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; } } }
untuk mengisih kedua separuh dalam tertib menurun Logik adalah seperti berikut -
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; } } }
Logik yang digunakan untuk membahagikan tatasusunan kepada dua bahagian dan mencetak dengan sewajarnya adalah seperti berikut -
for (i=0; i<b; ++i) printf ("%d ",number[i]);
untuk tatasusunan tunggal Dua bahagian program C yang menjalankan dua operasi -
Demonstrasi Langsungfor(i=b;i<n;i++) printf("%d ",number[i]);
#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]); }
Atas ialah kandungan terperinci Program C untuk melaksanakan dua bahagian operasi pada tatasusunan tunggal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!