程序设计第三周

【题目描述】

输入4个整数,按从小到大顺序输出。如输入4 3 2 1,输出1 2 3 4.

输入,4个整数,用空格隔开,输出4个有序整数,用一个空格隔开。

注意:不使用数组,不使用库函数排序。

【输入输出样例】

输入:

4 3 2 1

输出:

1 2 3 4

本题思路:先找出最小的,然后将其值设置为最大,再找出最大的,然后再设置为最大......

操作很重复,所以写了一个函数来解决,具体留存见注释,懒得写了

本周其它题目较简单,不再写


#include<stdio.h>
#define MAX 0x7fffffff
int change(int* n1,int* n2,int* n3,int* n4){
    int k = -1;
    int res;
    if((*n1) < (*n2)){
        res = (*n1);
        k = 1;
    }else{
        res = (*n2);
        k = 2;
    }
    if(res >= (*n3)){
        res = (*n3);
        k = 3;
    }
    if(res >= (*n4)){
        res = (*n4);
        k = 4;
    }
    switch(k){
        case 1 : (*n1) = MAX; break;
        case 2 : (*n2) = MAX; break;
        case 3 : (*n3)= MAX; break;
        case 4 : (*n4)= MAX; break;
    }
    return res;
}
int main()
{
    int n1, n2, n3, n4;
    scanf("%d%d%d%d",&n1,&n2,&n3,&n4);
    int r1, r2, r3, r4;
    // 先求出最小的一个 ,同时将其置为无穷大
//  int k = -1; 
//  if(n1 <= n2){
//      r1 = n1;
//      k = 1; 
//  }else{
//      r1 = n2;
//      k = 2;
//  }
//  if(r1 >= n3){
//      r1 = n3;
//      k = 3;
//  }
//  if(r1 >= n4){
//      r1 = n4;
//      k = 4;
//  }
//  switch(k){
//      case 1 : n1 = MAX; break;
//      case 2 : n2 = MAX; break;
//      case 3 : n3 = MAX; break;
//      case 4 : n4 = MAX; break;
//  }
//  k = -1;
//  
//  if(n1 <= n2){
//      r2 = n1;
//      k = 1; 
//  }else{
//      r2 = n2;
//      k = 2;
//  }
//  if(r2 >= n3){
//      r2 = n3;
//      k = 3;
//  }
//  if(r2 >= n4){
//      r2 = n4;
//      k = 4;
//  }
//  
//  switch(k){
//      case 1 : n1 = MAX; break;
//      case 2 : n2 = MAX; break;
//      case 3 : n3 = MAX; break;
//      case 4 : n4 = MAX; break;
//  }
    r1 = change(&n1,&n2,&n3,&n4);
    r2 = change(&n1,&n2,&n3,&n4);
    r3 = change(&n1,&n2,&n3,&n4);
    r4 = change(&n1,&n2,&n3,&n4);
    printf("%d %d %d %d",r1,r2,r3,r4);
    return 0; 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值