Week 7

来源:互联网 发布:贵族精神 知乎 编辑:程序博客网 时间:2024/05/29 14:57

编程题#1:年龄与疾病

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

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

描述

某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理。

输入

共2行,第一行为过往病人的数目n(0 < n <= 100),第二行为每个病人患病时的年龄。

输出

每个年龄段(分四段:18以下,19-35,36-60,大于60注意看样例输出的格式)的患病人数占总患病人数的比例,以百分比的形式输出,精确到小数点后两位(double)。关于c++的格式化的输入输出,请参考:http://www.cplusplus.com/reference/iomanip。也可以在网上搜索一下,资料很多的。

样例输入

1
2
10
1 11 21 31 41 51 61 71 81 91

样例输出

1
2
3
4
1-18: 20.00%
19-35: 20.00%
36-60: 20.00%
60-: 40.00%

提示

注意最后一行的输出是“60-: ”,而不是“61-: ”。

每个冒号之后有一个空格。

输出可以用 cout<<fixed<<setprecision(2) << f; 来保留f后面的两位小数。

#include#include using namespace std;int main(){    int n;    int a[100];    cin>>n;    for(int i=0;i>a[i];    }    int q=0,b=0,c=0,d=0;//记得把变量初始化    for(int i=0;i


编程题#2:成绩判断

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

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

描述

输入一个0--100的分数,判断分数代表什么等级。

95<=分数<=100, 输出1

90<=分数<95,输出2

85<=分数<90,输出3

80<=分数<85,输出4

70<=分数<80,输出5

60<=分数<70输出6

分数 < 60;输出7.

输入

n

输出

m

样例输入

1
87

样例输出

1
3

#include using namespace std;int main(){    int n;    cin>>n;//多个if—else嵌套判断,也可以用swich-case    if(n<60)        cout<<"7";    else if(n<70)        cout<<"6";    else if(n<80)        cout<<"5";    else if(n<85)        cout<<"4";    else if(n<90)        cout<<"3";    else if(n<95)        cout<<"2";    else cout<<"1";    return 0;}


编程题#3:找出第k大的数

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

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

描述

用户输入N和K,然后接着输入N个正整数(无序的),程序在不对N个整数排序的情况下,找出第K大的数。注意,第K大的数意味着从大到小排在第K位的数。

输入

N

K

a1 a2 a3 a4 ..... aN

输出

b

样例输入

1
2
3
5
2
32 3 12 5 89

样例输出

1
32


#include using namespace std;int main(){    int n,k;    int m=0;    int a[100];    cin>>n>>k;    for(int i=0;i>a[i];    }    for(int i=0;i


编程题#4:人民币支付

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

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

描述

从键盘输入一指定金额(以元为单位,如345),然后输出支付该金额的各种面额的人民币数量,显示100元,50元,20元,10元,5元,1元各多少张,要求尽量使用大面额的钞票

输入

一个小于1000的正整数。

输出

输出分行,每行显示一个整数,从上到下分别表示100元,50元,20元,10元,5元,1元人民币的张数

样例输入

1
735
1
2
3
4
5
6
7
0
1
1
1
0

#include using namespace std;int main(){    int n;    cin>>n;//遍历似乎还是麻烦了,    for(int i=9;i>=0;i--)//尽可能使用大面额,则倒着遍历,而且每种面值存在着转换关系,然后进行简化。    {        for(int j=2;j>=0;j--)        {            for(int k=2;k>=0;k--)                for(int l=1;l>=0;l--)            {                for(int z=1;z>=0;z--)                {                    for(int x=4;x>=0;x--)                    {                        if(i*100+j*50+k*20+l*10+z*5+x==n)                           {                            cout<





0 0
原创粉丝点击