Manchester


私信TA

用户名:wenyajie

访问量:312346

签 名:

在历史前进的逻辑中前进,这个逻辑就是人心向背的逻辑

等  级
排  名 1
经  验 62665
参赛次数 1
文章发表 188
年  龄 0
在职情况 学生
学  校 Xiamen University
专  业 计算机科学

  自我简介:

在历史前进的逻辑中前进,这个逻辑就是人心向背的逻辑

解题思路:
根据冒泡排序,四个数排三次;

从第一个数开始,每一个数与它的后一个数比较,大于后一个数则交换;每次交换后最大的数就会在最后一个

比如 :5 4 3 2

第一次:4 3 2 5

第二次:3 2 4

第三次:   2 3
注意事项:
          a = a + b;
        b = a - b;
        a = a - b;

这种交换方式在有些情况下容易产生逻辑错误,请酌情使用,比如在数组中交换时,详情见排序问题<2>

#include <iostream>
using namespace std;

int main()
{
    int a, b, c, d;

    cin >> a
    >> b
    >> c
    >> d;

/*---------------------------------------*/
    if ( a > b )
    {
        a = a + b;
        b = a - b;
        a = a - b;
    }


    if ( b > c )
    {
        b = b + c;
        c = b - c;
        b = b - c;
    }

    if ( c > d )
    {
        c = c + d;
        d = c - d;
        c = c - d;
    }
/*---------------------------------------*/
    if ( a > b )
    {
        a = a + b;
        b = a - b;
        a = a - b;
    }

    if ( b > c )
    {
        b = b + c;
        c = b - c;
        b = b - c;
    }
/*---------------------------------------*/
    if ( a > b )
    {
        a = a + b;
        b = a - b;
        a = a - b;
    }
/*---------------------------------------*/
    cout    << a
        << " "
        << b
        << " "
        << c
        << " "
        << d;
}


综合:

#include <iostream>
using namespace std;

int main()
{
    int a[4];
    for ( int i = 0; i < 4; i++ )
        cin >> a[i];

    for ( int i = 0; i < 4; i++ )
    {
        for ( int j = 0; j < 4 - i - 1; j++ )
        {
            if ( a[j] > a[j + 1] )
            {
                a[j]        = a[j] + a[j + 1];
                a[j + 1]    = a[j] - a[j + 1];
                a[j]        = a[j] - a[j + 1];
            }
        }
    }

    for ( int i = 0; i < 3; i++ )
        cout << a[i] << " ";
    cout << a[3];
}


 

0.0分

0 人评分

  评论区

#include <stdio.h>

void jiaohuan(int *a,int *b)
{
	if(*a>*b)    *a=*b+*a-(*b=*a);
}

int main(void)
{
	int a1=5,b1=4;
	jiaohuan(&a1,&b1);
	printf("%d  %d",a1,b1);
	
}
2017-12-14 09:38:28
  • «
  • 1
  • »