码迷,mamicode.com
首页 > 其他好文 > 详细

编程题#1:分配病房

时间:2017-10-28 15:33:25      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:col   std   space   ++   一个   turn   表示   ace   end   

描述

某个科室的病房分为重症和普通,只有当病人的疾病严重程度超过了入住重症病房的最低严重值,才可以安排入住重症病房。

现在要求设计一个程序,给病人安排好病房。疾病的严重程度用0到10来表示,0表示小毛病,10表示非常严重。

 

输入

第一行输入病人的个数m(m < 50),以及安排住入重症病房的最低严重值a

紧接着m行,每行表示病人编号(三个位,用0补齐)及其疾病的严重程度(浮点数,1位小数)。

每个病人的疾病严重程度都不一样。

 

输出

要求按照病人的严重程度输出住在重症病房里的病人的编号

注意:

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

#include <iostream>
#include <iomanip> 
using namespace std;
int f(double *cd, int m, double a) {
    int i;
    for (i = 0; i < m; i++) {
        if (*(cd+i) >= a)
            return i;
    }
    if (i == m) return m;
    
}
int main() {
    int m;
    double a;
    int id[1000];
    double cd[1000];
    cin >> m >> a;
    for (int i = 0; i < m; i++) {
        cin >> id[i] >> cd[i];
    } 
    // 排序
    for (int i = 0; i < m - 1; i++)
        for (int j = 0; j < m - i - 1; j++) {
            if (cd[j+1] < cd[j]) {
                int temid = id[j];
                id[j] = id[j+1];
                id[j+1] = temid;
                double temcd = cd[j];
                cd[j] = cd[j+1];
                cd[j+1] = temcd;            }
        } 
    int q = f(cd,m,a);
    if (q == m)
        cout << "None." << endl;
    for (int i = m - 1;i >= q;i--) {
        cout << setfill(0) << setw(3) << id[i]  <<  
            << fixed << setprecision(1) << cd[i] << endl; 
    }
    return 0;
}

 

编程题#1:分配病房

标签:col   std   space   ++   一个   turn   表示   ace   end   

原文地址:http://www.cnblogs.com/Zhz0306/p/7746906.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!