c语音程序设计,希望有能人者帮帮我,我真的不明白这些

编写程序,输入两个整数a和b,交换它们的值,然后输出,输入样例1 3 ,输出样例3 1还有输入样例-1 1,输出样例1 1。我不明白怎么做,也搞不懂这些数字有什么区别,第一次接触这个,有点超出我的认知(我反应有点慢,希望各位朋友能够解答详细点,万分感谢😊)

可以这样:

#include <stdio.h>
 
int main()
{
    int a,b,c;
    scanf("%d %d",&a,&b);
    c=a,a=b,b=c;
    printf("%d %d",a,b);
    return 0;
}

或者直接这样:

#include <stdio.h>
 
int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    printf("%d %d",b,a);
    return 0;
}

img

这是一个简单的数字交换的题目,只是增加了一个负数变为正数的逻辑

int main()
{
    int a = 1, b = 2;
    //要想把a, b交换,最简单的是使用加法,网上有一些其他方案,你可以整理一下
    a = a + b; //求和 a是原来a和b的和
    // =左边是变量 给这个变量重新赋值  =右边是原变量 用原变量的值  先看=右边的逻辑,再看左边
    b = a - b; // a是原来a,和b的和, b是原来的b, a-b是原来的a  这个不就是把原来的a 赋值给b
    a = a - b; // 同上,a赋值为原来b的值

//下面这个是完整逻辑,你可以封装个函数,输入c和d。。。
//上面的逻辑就是交换a和b的逻辑  如果有负数,要符合要求 是不是可以先把负数变为正数,再交换
    int c = -1, d = 2;
    //先把负数变为正数
    if (c < 0)
    {
        c = -c;
    }
    if (d < 0)
    {
        d = -d;
    }
    //按照交换的逻辑处理 好像还有一种异或的方案  你可以试试
    c = c + d;
    d = c - d;
    c = c - d;
    //c是2  d是1 
    return 0;
}
#include <stdio.h>
int main()
{
    printf("输入两个整数a和b:");
    int a,b;
    scanf("%d%d",&a,&b);
    int tem=a;a=b;b=tem;
    printf("%d %d",a,b);
    return 0;
}

#include <stdio.h>
 
int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    a=a+b;b=a-b;a=a-b;
    printf("%d %d",a,b);
    return 0;
}