搜索
查看: 1538|回复: 6
打印 上一主题 下一主题

【第三章第7节】动手试一试 题解

[复制链接]
跳转到指定楼层
楼主
发表于 2014-4-21 18:32:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.         int a,b,c,d,t;
  6.         scanf("%d %d %d %d",&a,&b,&c,&d);
  7.         if(a>b){
  8.                 t=a;
  9.                 a=b;
  10.                 b=t;
  11.         }
  12.         if(b>c){
  13.                 t=b;
  14.                 b=c;
  15.                 c=t;
  16.         }
  17.         if(c>d){
  18.                 t=c;
  19.                 c=d;
  20.                 d=t;
  21.         }
  22.         if(a>b){
  23.                 t=a;
  24.                 a=b;
  25.                 b=t;
  26.         }
  27.         if(b>c){
  28.                 t=b;
  29.                 b=c;
  30.                 c=t;
  31.         }
  32.         if(a>b){
  33.                 t=a;
  34.                 a=b;
  35.                 b=t;
  36.         }

  37.         printf("%d %d %d %d",a,b,c,d);
  38.         
  39.         system("pause");
  40.         return 0;
  41. }
复制代码
沙发
发表于 2014-4-26 20:28:02 | 只看该作者
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b,c,d,e;
    scanf("%d %d %d %d",&a,&b,&c,&d);
    if (b<a)
    {
                e=a;
        a=b;
        b=e;
    }
    if (c<a)
    {
                e=a;
        a=c;
        c=e;
    }
    if (d<a)
    {
                e=a;
        a=d;
        d=e;
    }
    if (c<b)
    {
                e=b;
        b=c;
        c=e;
     }
    if (d<b)
    {
                e=b;
        b=d;
        d=e;
    }
    if (d<c)
    {
                e=c;
        c=d;
        d=e;
     }
     if (d<c)
     {
                e=c;
        c=d;
        d=e;
     }
    printf("%d %d %d %d\n",a,b,c,d);
        
        system("pause");
   
        return 0;
}
板凳
发表于 2014-7-1 16:24:55 | 只看该作者
if (d<c)
    {
                e=c;
        c=d;
        d=e;
     }
     if (d<c)
     {
                e=c;
        c=d;
        d=e;
     }
为什么比两次D和C? 求解释{:soso_e132:}
地板
发表于 2014-7-1 16:27:56 | 只看该作者
不太懂,求注释
5#
发表于 2014-10-7 22:34:32 | 只看该作者
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b,c,d,t;
    scanf("%d %d %d %d",&a,&b,&c,&d);
    if(a>b)
    {
    t=a;
    a=b;
    b=t;}
    if(a>c)
    {
    t=a;a=c;c=t;}
    if(b>c)
    {
    t=b;b=c;c=t;}
    if(c>d)
    {
    t=c;c=d;d=t;}
    if(a>b)
    {
    t=a;
    a=b;
    b=t;}
    if(a>c)
    {
    t=a;a=c;c=t;}
    if(b>c)
    {
    t=b;b=c;c=t;}
    printf("%d %d %d %d",a,b,c,d);
        system("pause");
        return 0;
}
6#
 楼主| 发表于 2014-10-8 03:18:48 | 只看该作者

简而言之就是不用循环,手工写冒泡排序

第一轮 a,b b,c c,d, 最大的数字已经被放到d的位置上了,下一轮就不用动了
第二轮 a,b b,c 第二大的在c上面了
然后第三轮比较a b
7#
发表于 2014-12-6 09:46:36 | 只看该作者
32—35行 为什么又多了一次if(a>b)的循环
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表