समस्या
N . के एक-आयामी सरणी को स्वीकार करने के लिए एक प्रोग्राम लिखें तत्वों और दो हिस्सों में विभाजित। बाद में, पहली छमाही को आरोही क्रम में और दूसरी छमाही को अवरोही क्रम में क्रमबद्ध करें।
समाधान
सी प्रोग्रामिंग भाषा में एक ही सरणी में दो हिस्सों में दो ऑपरेशन करने का समाधान नीचे समझाया गया है -
पहली छमाही को आरोही क्रम में क्रमबद्ध करने के लिए उपयोग किया गया तर्क इस प्रकार है -
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; } } }
एक सरणी को दो हिस्सों में विभाजित करने और उसके अनुसार प्रिंट करने के लिए उपयोग किया जाने वाला तर्क नीचे दिया गया है -
- आरोही क्रम पहली छमाही
for (i=0; i<b; ++i) printf ("%d ",number[i]);
- अवरोही क्रम दूसरी छमाही
for(i=b;i<n;i++) printf("%d ",number[i]);
उदाहरण
एक ही सरणी में दो हिस्सों पर दो ऑपरेशन करने के लिए C निम्नलिखित सी प्रोग्राम है -
#include<stdio.h> void main(){ int i,j,a,n,b,number[30]; printf ("Enter the value of N\n"); scanf ("%d", &n); b = n/2; printf ("Enter the numbers \n"); 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\n"); printf (" arranged in asc\n"); for (i=0; i<b; ++i) printf ("%d ",number[i]); printf("\nThe 2nd half Numbers\n"); printf("order arranged in desc.order\n"); 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