1183:病人排队

时间限制: 1000 ms         内存限制: 65536 KB
提交数: 17345     通过数: 7284

【题目描述】

病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序:

1.老年人(年龄 >= 60岁)比非老年人优先看病。

2.老年人按年龄从大到小的顺序看病,年龄相同的按登记的先后顺序排序。

3.非老年人按登记的先后顺序看病。

【输入】

第1行,输入一个小于100的正整数,表示病人的个数;

后面按照病人登记的先后顺序,每行输入一个病人的信息,包括:一个长度小于10的字符串表示病人的ID(每个病人的ID各不相同且只含数字和字母),一个整数表示病人的年龄,中间用单个空格隔开。

【输出】

按排好的看病顺序输出病人的ID,每行一个。

【输入样例】

5
021075 40
004003 15
010158 67
021033 75
102012 30

【输出样例】

021033
010158
021075
004003
102012

【参考代码】

#include <stdio.h>
#define N 20
struct node
{
    char s[N];   //病人id 
    int age;     //病人年龄
    int que;     //病人顺序 
}pat[100],t;
void cmpsort(int n)
{
    int i,j;
    int case1,case2,case3,case4;
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            case1=pat[i].age<60 && pat[j].age>=60;
            case2=pat[i].age>=60 && pat[j].age>=60 && pat[i].age<pat[j].age;
            case3=pat[i].age>=60 && pat[j].age>=60 && pat[i].age==pat[j].age && pat[i].que>pat[j].que;
            case4=pat[i].age<60 && pat[j].age<60 && pat[i].que>pat[j].que;
            if(case1 || case2 || case3 || case4)
            {
                t=pat[i];
                pat[i]=pat[j];
                pat[j]=t;
            }
        }
    }
}
int main()
{
    int i,k=1,n;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%s %d",pat[i].s,&pat[i].age);
        pat[i].que=k;
        k++;
    }
    
    cmpsort(n);
    
    for(i=0;i<n;i++)
        printf("%s\n",pat[i].s);
    
    return 0;
}

http://ybt.ssoier.cn:8088/problem_show.php?pid=1183

信息学奥赛一本通(1183:病人排队)相关推荐

  1. c语言程序设计医院排队功能,[信息学奥赛一本通-T1183]病人排队-题解(C语言代码)...

    解题思路:通过年龄是否大于等于60作判断,当年龄大于等于60时,记录当前数据,当前数据之前的数据全部后移一位,把当前数据放到第一位.循环n(人数)次 注意事项: 参考代码: #include stru ...

  2. 信息学奥赛一本通1399——甲流病人初筛

    信息学奥赛一本通--甲流病人初筛 1399:甲流病人初筛 http://ybt.ssoier.cn:8088/problem_show.php?pid=1399 题目描述 目前正是甲流盛行时期,为了更 ...

  3. 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

    信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法   更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...

  4. 信息学奥赛一本通在线提交地址

    信息学奥赛一本通 1 C++语言入门 1.1 综合 1.1.1 P1458 地球人口承载力估计 正确: 770 提交: 1794 比率: 42.92 % 1.1.2 P1686 Hello, Worl ...

  5. 信息学奥赛一本通 (C++)上机练习

    信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...

  6. 信息学奥赛一本通_长乐一中老师演绎“奥赛传奇”

    董永建(右一)在课堂上. 台海网5月14日讯 据福州晚报报道,长乐一中有一位"传奇"老师--15年来,他辅导的学生在全国高中生信息学奥赛中获金牌3人次.银牌3人次.铜牌5人次:在全 ...

  7. 信息学奥赛一本通 提高篇 第5章 矩阵乘法

    例1 矩阵AXB 信息学奥赛一本通(C++版)在线评测系统 [矩阵乘法]矩阵A×B_Uletay-CSDN博客 矩阵乘法--矩阵A×B_vina的博客-CSDN博客 一本通1641[例 1]矩阵 A× ...

  8. 《信息学奥赛一本通提高篇》第6章 组合数学

    例1 计算系数(NOIP2011提高) 信息学奥赛一本通(C++版)在线评测系统 NOIP2011计算系数_nanhan27的博客-CSDN博客 「NOIP2011」 计算系数 - 组合数_TbYan ...

  9. 《信息学奥赛一本通 提高篇》

    提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1章 贪心算法_青少年趣味编程-CSDN博客 提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1 ...

  10. 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分

    信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分 信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分_mrcrack的博客-CSDN博客_信息学奥赛一本通 ...

最新文章

  1. 【转载】Session服务器配置指南与使用经验
  2. python运行程序-Python中四种运行其他程序的方式
  3. 中文文本情感分析-python包SnowNLP入门
  4. Java总结篇系列:Java多线程(一)
  5. [转载] numpy.gradient
  6. 调度失败:执行器地址为空_三千字带你搞懂XXL-JOB任务调度平台
  7. MySQL 运维及开发规范
  8. IPFS(DRAFT 3) 中文版白皮书
  9. python实现ftp_python实现ftp(客户端)
  10. SD卡驱动(详细介绍,不明白的人可以仔细看看了.有流程图)
  11. sql未保存文档找回
  12. AltiumDesigner19(AD19)使用设置技巧
  13. 51实现todos-完整js
  14. 2018_WWW_DKN- Deep Knowledge-Aware Network for News Recommendation阅读笔记
  15. 抖音私信页面如何做跳转页跳到微信加好友?
  16. win10系统日志事件ID 10016
  17. ESP-12S学习(6)--Smartconfig
  18. python网络游戏服务器
  19. LTE小区选择和小区重选(3
  20. HTML5+CSS大作业——传统节日--中秋节(5页)

热门文章

  1. Silverlight+WCF 新手实例 象棋 介绍(一)
  2. 6个特征,判断你的领导值不值得追随
  3. Redis遇到的那些坑
  4. 面试官留步!听我跟你侃会儿Docker原理
  5. 漫话:如何给女朋友解释什么是适配器模式?
  6. Element-UI Form表单 resetFields() 重置表单无效问题
  7. 教你使用Vue.js的DevTools来调试你的vue项目
  8. 关于oracle分组后组外排序的问题
  9. JS键盘事件最全keycode代码
  10. Dataguard学习笔记