Rumah >pembangunan bahagian belakang >C++ >Program C untuk melaksanakan dua bahagian operasi pada tatasusunan tunggal

Program C untuk melaksanakan dua bahagian operasi pada tatasusunan tunggal

WBOY
WBOYke hadapan
2023-08-27 13:05:06512semak imbas

Program C untuk melaksanakan dua bahagian operasi pada tatasusunan tunggal

Masalah

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

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 -

  • Menaik separuh pertama
for (i=0; i<b; ++i)
printf ("%d ",number[i]);
  • Menurun separuh masa kedua
  • Menurun
Contoh

Berikut ialah

untuk tatasusunan tunggal Dua bahagian program C yang menjalankan dua operasi -

Demonstrasi Langsung

for(i=b;i<n;i++)
printf("%d ",number[i]);

Output

Apabila program di atas dilaksanakan, keputusan berikut dihasilkan -

#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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam