永发信息网

C语言刚刚学,输入3个数,把它们按从小到大的顺序排列输出,有不理解的地方!!请指教

答案:6  悬赏:40  手机版
解决时间 2021-02-14 11:41
  • 提问者网友:容嬷嬷拿针来
  • 2021-02-13 12:06
#include
void main()
{
int a, b, c,temp;
printf("\ninput three numbers:\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\n",a, b, c);
}
如这样写的话,
temp = a;
a = b;
b = temp 为什么这样一写,就能把a和b的位置对调呢??十分不理解!
最佳答案
  • 五星知识达人网友:掌灯师
  • 2021-02-13 13:23
给你解释下 。
1、首先 ,你要明白变量的值是可以变化的;下次存储的值会覆盖上次原来的值;
2、然后,变量temp在这里就是一个中间变量, 用来存储变量a 的值;

a、b交换过程: 开始先把a的值赋给中间变量temp;然后把b的值赋给a,这样变量a就装着跟变量b的值了。。然后把temp(实际是a的值)赋给b,这时变量b实际就是装着以前变量a的值。达到了交换a.b 的变量值;
说的这么详细, 我想你应该能懂了吧。。。
全部回答
  • 1楼网友:轮獄道
  • 2021-02-13 16:42
这不是把a和b的位置对调,是把变量a和b中原有的值对调一下。其中temp是中间变量。是他俩换值的媒介。
  • 2楼网友:举杯邀酒敬孤独
  • 2021-02-13 16:12
有两个瓶子,分别装有酱油和醋,要把它们互换,当然不能直接交换。我们可以再取一个空瓶,先把酱油倒入空瓶中,再把醋倒入原来装有酱油的瓶中,然后再把空瓶中的酱油倒入原本装有醋的瓶子,这样以一个空瓶为媒介,实现酱油和醋的交换。这里的temp就相当于一个空瓶,a、b则相当于终于酱油和醋的瓶子,以temp为中介,实现a、b值的交换
  • 3楼网友:像个废品
  • 2021-02-13 16:06
先设一个数组a[20] 存储那20个数. 设一个a[k],k=0 从a[0]开始比.a[1] a[2]一个一个比.比如a[5]有比a[k]大的,就令k=5.一轮比下来得到的a[k]就是最大的了, 然后搞个循环. 最后输出. 只是个算法.程序自己写嘞
  • 4楼网友:猎心人
  • 2021-02-13 15:16
以下是最优方案了。 #include int main() { int a,b,c; printf("\ninput three numbers:\n"); scanf("%d%d%d",&a,&b,&c); a=(a>b)?a:b; a=(a>c)?a:c; printf("max=%d\n",a); }
  • 5楼网友:罪歌
  • 2021-02-13 13:40
你把这3个变量想象成3个盒子。 把temp中装的东西变得和a中的东西一样 把a中装的东西变得和b中一样 把b中装的东西变得和temp中的一样, 你可以在纸上草草的画一下,就会发现最终的结果就是a的结果是b的初始状态,b的结果是a的初始状态。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯