সওয়াপ ইন সি ( Swap in C)

সওয়াপ ( Swap) বদল করা বা বিনিময় এর একটি পরিচিত ইংরেজি প্রতিশব্দ (Exchange) .

মনে করি, int a = 10, int b = 20 এখন বদল করে a = 20, b = 10 করতে চাই।এটিই সওয়াপ ( Swap) বা বদল করা।

আমি আগেই বলেছি, কম্পিউটার সরাসরি যোগ, বিয়োগ, গুন, ভাগ , করতে পারে না ভেরিরেবল এর মানকে বাইনারিতে রুপান্তর করে Addition, Multiplication, Subtraction কার্য সম্পাদন করে।

#include <stdio.h>
int main ()
{
    int a = 10, b = 20;
    int temp;

    //Swap useing 3rd variable
    temp = a;
    a = b;
    b = temp;

    printf("a value is = %d\n", a);
    printf("b value is = %d\n", b);

    return 0;
}

Output

a value is = 20
b value is = 10

এখনে লক্ষনীয় যে, temp = a; লাইন দ্বারা temp ভেরিয়াবলে আমি a এর মানটা রেখেছি। a খালি হয়েছে ।

a = b; পরের লাইনে b এর মান a তে রাখলাম । b খালি হয়েছে।

এখন, temp এতে রাখা a এর মান b তে রেখে দিছি। তাহলে, a = 20, b = 10 বদল করা হয়ে গেল।


এখন আমরা ৩য় ভেরিয়েবল ছাড়া সওয়াপ ( Swap) করব

#include <stdio.h>
int main() {
    int a = 10, b = 20;

    // Swap without 3rd Variable

    a = a - b;

    b = a + b;

    a = b - a;

    printf("After swapping, a = %d\n", a);
    printf("After swapping, b = %d\n", b);

    return 0;
}

আউটপুট

After swapping, a = 20
After swapping, b = 10

এখানে, a = a – b; এই লাইনে ১০-২০ = -১০, এখন a = তে -১০ আছে।

b = a + b; এখানে -১০ + ২০ = ১০, এখন b তে ১০ আছে।

পরের লাইনে a = b – a মানে ১০ – (-১০) = ২০ এখন a তে ২০ আছে।


এক্সর অপারেটর ব্যবহার করে সওয়াপ ( Swap)

#include<stdio.h>

void swap(int m, int n)
{
    m = m ^ n;
    n = m ^ n;
    m = m ^ n;
    printf("After Swapping ");
    printf("\n\nFirst Number is: %d",m);
    printf("\nSecond Number is: %d",n);
}
int main (){

    int a = 10, b = 20;
    swap(a, b);
}

Output

After Swapping

First Number is: 20
Second Number is: 10

নিচের ছবিটি দেখে বুজার চেস্টা কর

০ ০ = ০, ০ ১ =১, ১ ০=১, ১ ১ =০ এক্সর এর বেসিক


ইনপুট জিরো হতে পারবে না

#include<stdio.h>

void swap(int m, int n)
{
    if(m != 0 &amp;&amp; n != 0)
    {
        m = m * n;
        n = m/n;
        m = m/n;
        printf("\nAfter Swapping, the numbers are: ");
        printf("\n\nFirst Number is m: %d",m);
        printf("\nSecond Number is n: %d",n);
    }
    else
    {
        printf("\n Both the numbers should be Non-Zero!");
    }
}
int main()
{
    int m = 10, n = 20;
    swap(m,n);
    return 0;
}

আউটপুট

After Swapping

First Number is m: 20
Second Number is n: 10

সি অলসদের জন্য একটি ( Swap) এক লাইনে

#include<stdio.h>

void swap(int m, int n)
{
    n = m + n - (m = n);
    printf("After Swapping");
    printf("\n\nFirst Number is: %d",m);
    printf("\nSecond Number is: %d",n);
}
int main()
{
    int m = 10, n = 20;
    swap(m,n);
    return 0;
}

আউটপুট

After Swapping

First Number is: 20
Second Number is: 10

নিচের লিংক গুলি ফলো কর