注册 登录
编程论坛 C语言论坛

temp=a; a=c; c=temp 不理解?

爱c如爱命 发布于 2021-04-07 17:31, 1398 次点击
#include<stdio.h>
void main()
{
    int a,b,c,temp;
    printf("input three numbers a,b,c\n");
    scanf("%d %d %d",&a,&b,&c);
    if(a>b)
    {
        temp=a;
        a=b;
        b=temp;
    }
    if(a>c)
    {
        temp=a;
        a=c;
        c=temp;
    }
    if(b>c)
    {
        temp=b;
        b=c;
        c=temp;
    }
    printf("%d,%d,%d",a,b,c);

}

这个编程是输入三个整型数,然后从小到大输出。但是不知道这种编程的意思。像
        temp=a;
        a=c;
        c=temp这种编写很不理解。请求大佬们帮忙解释这样写程序的含义。
3 回复
#2
apull2021-04-07 18:45
temp=a; a=c; c=temp,  交换a,c的值
#3
zbjzbj2021-04-07 20:12
计算机不像人,甲乙互相交换东西,用两只手,甲用右手把A递给乙的左手,同时乙用右手把B递给甲的左手,实现交换,这是双通道。
计算机只有一个通道:甲乙交换东西,但是甲乙分别只有一个碗来盛放东西。必须准备第三只碗。
    第一步:甲把碗里的东西拿出来,放到一边(丙的碗里)
    第二部:乙把碗里的东西拿出来,放到甲空出来的碗里。
    第三步:乙从丙碗里拿出原本是甲的东西,放到自己碗里。
罗嗦吧?计算机就是这样工作的,每秒钟运作上亿次就快了。勤能补拙。
#4
夏天q2021-04-07 20:54
三个杯子记为A,B,C
A装了可乐,C装了牛奶
想用A装牛奶,C装可乐
把A中的牛奶倒进B
把C中的可乐倒进A
把B中的可乐倒进C
把B丢掉 就换过来了
//temp相当于B杯子
temp=a; //把A杯子的可乐倒进B
a=c; //把C杯子的牛奶倒进A
c=temp //把B杯子的可乐倒进C
1