编程题#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。也可以在网上搜索一下,资料很多的。
样例输入
样例输出
提示
注意最后一行的输出是“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
样例输入
样例输出
#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
样例输入
样例输出
#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元人民币的张数
样例输入
#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<
<