C++经典编程题#6:分配病房

总时间限制: 
1000ms

内存限制: 
65536kB
描述

某个科室的病房分为重症和普通,只有当病人的疾病严重程度超过了入住重症病房的最低严重值,才可以安排入住重症病房。 
现在要求设计一个程序,给病人安排好病房。疾病的严重程度用0到10来表示,0表示小毛病,10表示非常严重。

输入
第一行输入病人的个数m(m < 50),以及安排住入重症病房的最低严重值a
紧接着m行,每行表示病人编号(三个位,用0补齐)及其疾病的严重程度(浮点数,1位小数)。
每个病人的疾病严重程度都不一样。
输出
要求按照病人的严重程度输出住在重症病房里的病人的编号

注意:
如果当前所有病人的严重程度并不满足住在重症病房里,则输出“None.”(不包括引号)

样例输入
10 7.55
006 6.5
005 8.0
004 3.5
009 8.5
011 7.0
043 9.5
003 5.0
103 6.0
112 4.0
118 9.0
样例输出
043 9.5
118 9.0
009 8.5
005 8.0代码如下:
 1 #include<stdio.h>
 2 using namespace std;
 3
 4 struct patient
 5 {
 6     int num;
 7     float how;
 8 };
 9
10 int main() {
11     int m, i, j;
12     float a;
13     scanf("%d%f", &m, &a);
14     struct patient p[51];
15     for (i=0; i<m; i++) {
16         scanf("%d%f", &p[i].num, &p[i].how);
17     }
18     for (j=1;j<m;j++) {
19         for (i=0;i<j;i++) {
20             if (p[i].how<p[j].how) {
21                 struct patient temp = p[i];
22                 p[i] = p[j];
23                 p[j] = temp;
24             }
25         }
26     }
27     bool hasPrint = false;
28     for (i=0;i<m;i++) {
29         if (p[i].how > a) {
30             printf("%03d %.1f\n", p[i].num, p[i].how);
31             hasPrint = true;
32         }
33     }
34     if (!hasPrint) {
35         printf("None.");
36     }
37     return 0;
38 }

以上代码本人亲测!请用心感悟!希望可以帮到初学的您!!分享也是一种快乐!!!请接力。。。

时间: 2024-11-03 21:38:29

C++经典编程题#6:分配病房的相关文章

Java经典编程题50道之四十六

编程实现两个字符串的连接. public class Example46 {    public static void main(String[] args) {        addString("hello"," world!");    }    public static void addString(String s1,String s2){        String s3=s1+s2;        System.out.println("

Java经典编程题50道之五十

有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件 "stud"中. public class Example50 {    public static void main(String[] args) {        stud();    } public static void stud() {        Scanner ss = new Scanner(System.in); 

Java经典编程题50道之九

一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. public class Example09 {    public static void main(String[] args) {        number();    } public static void number() {        int count = 0;        for (int i = 1; i <= 1000; i++) {     

Java经典编程题50道之五

利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示. public class Example05 { public static void main(String[] args) {        score(90);    } public static void score(int n) {        char s = n >= 90 ? 'A' : (n < 60 ? 'C' : 'B');        Sys

Java经典编程题50道之十七

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个:第二天早上又将剩下的桃子吃掉一半,而且又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,就只剩下一个桃子了.求第一天共摘了多少个桃子. public class Example17 {    public static void main(String[] args) {        int sum = peach(1);        System.out.println("第一天共摘

Java经典编程题50道之十八

两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人,以抽签决定比赛名单.有人向队员打听比赛的名单:a说他不和x比,c说他不和x. z比.请编程序找出三队赛手的名单. public class Example18 {    public static void main(String[] args) {        vs();    } public static void vs() {        char[] m = { 'a', 'b', 'c' };      

Java经典编程题50道之十六

输出九九乘法表. public class Example16 {    public static void main(String[] args) {        table(9);    } public static void table(int n) {        for (int i = 1; i <= n; i++) {            for (int j = 1; j <= i; j++) {                System.out.print(j +

Java经典编程题50道之十五

输入三个整数x,y,z,请把这三个数由小到大输出. public class Example15 {    public static void main(String[] args) {        sort(15, 10, 5);    } public static void sort(int x, int y, int z) {        if (x > y) {            int t = x;            x = y;            y = t;  

Java经典编程题50道之十四

输入某年某月某日,判断这一天是这一年的第几天? public class Example14 {    public static void main(String[] args) {        year(2017, 1, 1);    } public static void year(int year, int month, int day) {        int d = 0;        int days = 0;        if (year < 0 || month <