Week 7

编程题#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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值