//সি প্রোগ্রামারদের দৃষ্টি আকর্ষণ করছি,?

------------------------------------------------------------------ ------------------------------------------------------------------- #include int main() { int ara[] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100}; int i, j, temp; for(i = 0, j = 9; i < 10; i++, j--) { temp = ara[j]; ara[j] = ara[i]; ara[i] = temp; } for(i = 0; i < 10; i++) { printf("%d\n", ara[i]); } return 0; }--------------------------------------------------------------------------------------------------- এই প্রোগ্রামটিতে একটি ছোট্ট বাগ রয়েছে। কেউ কি বলতে পারবেন প্রোগ্রামটির কোথায় বাগ রয়েছে????
2667 views

1 Answers

আপনি প্রোগ্রামটি কেন বা কি করার জন্য লিখেছেন তা ক্লিয়ার করলে ভালো হত।

আপনি সম্ভবত Array টিকে উলটা ভাবে সাজানোর জন্য প্রোগ্রামটি লিখেছেন। মানে {১০০, ৯০, ৮০....,২০,১০} এভাবে সাজাতে চেয়েছেন।

এক্ষেত্রে প্রথম লুপটি ১০ বার চালানোর কারনে Array টি আবার আগের মত হয়ে যাচ্ছে। আপনি যদি  লুপটি ৫ বার চালান, তাহলে Array টি উলটা ভাবে সাজানো হয়ে যাবে। 

অর্থাৎ  for(i = 0, j = 9; i < 10; i++, j--) এর পরিবর্তে 

for(i = 0, j = 9; i < 5; i++, j--) লিখলেই প্রোগ্রামটি Array টিকে উলটা ভাবে সাজিয়ে দিবে।

মনে করুণ,  আপনার Array টিতে দুইটি সংখ্যা আছে, {১০, ২০}

তাহলে আপনি যদি একবার সংখ্যা দুটিকে swap করেন, তাহলেই Array টিতে {২০, ১০} হয়ে যাবে। যদি ৪ টি সংখ্যা থাকে তাহলে দুইবার swap করতে হবে। 

লক্ষ করুণ, আপনার লিখিত প্রোগ্রামটিতে প্রথম ৫ বার swap এর ফলে Array টি {১০০, ৯০, ৮০....,২০,১০} হয়ে যাচ্ছে, আবার পরের ৫ বার swap এর ফলে পূনরায় আগের মত হয়ে যাচ্ছে।

আশা করি বুঝতে পেরেছেন।

2667 views Answered

Next steps