Change the array elements in reverse order using their positions
முதலில் array-ன் last position-ஐ ஒரு variable-லில் store செய்துகொள்ளவேண்டும். இங்கு last_position என்ற variable பயன்படுத்தபட்டுள்ளது. பிறகு for() loop 0-லிருந்து array-ன் பாதி வரை மட்டும் சென்றால் போதுமானது. ஏனெனில் loop-ஆனது 0-லிருந்து பாதி அளவு சென்ற உடனே array a[]-ல் உள்ள அனைத்து element-களும் இடமாற்றம் செய்யப்பட்டுவிடும்.
i-ன் value-ஐ வைதுகொண்டே array-ன் முதல் element-ஐ எடுக்கும்போது array-ன் கடைசி element-ம், array-ன் இரண்டாவது element-ஐ எடுக்கும்போது array-ன் கடைசியில் உள்ள இரண்டாவது element. இதேபோல் array-ல் உள்ள ஒவ்வொரு element-ம் அதற்க்கு இணையான கடைசி element-ஐ கண்டரியவேண்டும். இதுவே இதில் அடங்கி உள்ள logic.
அதற்காகத்தான் a[i] மற்றும் a[last_position -i] என்று இதில் குறிப்பிடபடுகிறது. a[last_position-i]-ஆனது ஒவ்வொரு a[i]-க்கும் இணையான கடைசி element-ஐ கண்டறியும். இதை வைத்து இப்பொழுது element-களை இடமாற்றம் செய்யவேண்டும்.
அதற்க்கு a[i]-ல் உள்ள value-ஐ temp என்ற variable-க்கும் a[last_position-i]-ல் உள்ள value-ஐ a[i]-க்கும் மாற்றியபிறது, temp-ல் உள்ள value-ஐ இப்பொழுது a[last_position-i]-க்கு மாற்றிவிடவேண்டும். இவ்வாறே loop சுழற்சி அடையும்போது அனைத்து element-களும் தன்னுடைய இடத்தை மாற்றிக்கொள்ளும்.
இப்பொழுது for() loop-ஐ பயன்படுத்தி a என்ற array-வை 0 position-லிருந்து கடைசி வரை print செய்தால் array-ஆனது reverse order-ல் கிடைத்துவிடும்.
#include<stdio.h>
#include<conio.h>
int main(){
int a[] = {80, 97, 69, 79, 88, 100, 13};
int length=sizeof(a)/sizeof(int);
int i,temp;
int last_position = length - 1;
for (i = 0; i <(length / 2); i++) {
temp = a[i];
a[i] = a[last_position - i];
a[last_position - i] = temp;
}
printf("\nReversed element of an array:");
for (i = 0; i <length; i++) {
printf("%d, ",a[i]);
}
return 0;
}
13, 100, 88, 79, 69, 97, 80,
Pgcomments
இது பற்றிய தங்களின் கருத்துகளை இங்கே பதிவிடுங்கள் . இது பயனுள்ளதாக விரும்பினால் மற்றவர்களுக்கும் இதை share செய்யுங்கள்.
Comments