Program C untuk melaksanakan dua bahagian operasi pada tatasusunan tunggal

WBOY
Lepaskan: 2023-08-27 13:05:06
ke hadapan
509 orang telah melayarinya

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;
      }
   }
}
Salin selepas log masuk

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;
      }
   }
}
Salin selepas log masuk

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]);
Salin selepas log masuk
  • 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]);
Salin selepas log masuk

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]);
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan