[土狗之路]coursera C语言进阶 习题 分配病房

来源:互联网 发布:神吐槽 知乎 编辑:程序博客网 时间:2024/04/27 14:59

最近心情很差,更新的很慢

直接上题目:

编程题#1:分配病房

来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

注意: 总时间限制: 1000ms 内存限制: 65536kB

描述

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

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

输入

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

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

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

输出

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

注意:

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

样例输入

10 7.55006 6.5005 8.0004 3.5009 8.5011 7.0043 9.5003 5.0103 6.0112 4.0118 9.0

样例输出

043 9.5118 9.0009 8.5005 8.0

然后是代码
#include<iostream>#include <iomanip>#include <cstdio>using namespace std;int main() {float patient[50];int number[50];int n;//病人个数float level;//病情严重程度cin >> n >> level;for (int i = 0; i < n; i++) {cin >> number[i] >> patient[i];}bool be = false;//确认是否有病人住在ICU,默认为无for (int i = 0; i < n; i++) {if (patient[i]>=level) {be = true;/*冒泡,把住在ICU的病人,从小到大排序*/for (int j = i + 1; j < n; j++) {if (patient[j] >= level&&patient[j]>patient[i]) {float temp;temp= patient[j];patient[j]= patient[i];patient[i] = temp;int temp1;temp1 = number[j];number[j] = number[i];number[i] = temp1;}}}}if (be == false) {cout << "None." << endl;return 0;}/*这里是考察输出格式的,又是百度的*/else {for (int i = 0; i < n; i++) {if (patient[i] >= level){printf("%03d", number[i]);cout<< ' '<<setiosflags(ios::fixed) << setprecision(1) <<patient[i] << endl;}}return 0;}}

0 0
原创粉丝点击