124
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
我爱编程
描述:
小美是一名中学生,虽然是文科班的女生,但她对编程非常感兴趣,想利用业余时间学习编程语言,所以她买来很多的编程书籍,不过由于每个语言难度不同,所以学习周期也就不同,比如Java中等难度,需要21天精通,C++比较难,要30天才能精通,PHP超级简单,只需要1天就可以精通.......所以在开学当天,她看了一下整个学年的课程以及假期安排,统计出了假期的总天数。请你帮助小美安排最优学习顺序,使得她能在有限的假期内精通尽可能多的编程语言。
输入:
第一行有一个正整数N(1<=N<=10000),表示N门编程语言。 N之后有一个空格,接下来有一个整数D(1<=D<=365),D表示这一学年假期的总天数。 接下来有N行,每一行都有编程语言的名字name(1<=name的长度<=32),以及精通此编程语言所需的天数day,name和day之间用空格隔开。
输出:
第一行输出小美在本学年最多可以精通多少种编程语言(假设是K种),接下来输出K行,表示所有符合条件的编程语言的名字,注意按照编程语言name的字典序从小到大输出。
难度:
输入示例:
6 100 Java 21 C++ 30 C 25 Python 15 ObjectC 45 PHP 1
输出示例:
5 C C++ Java PHP Python
代码类型:C++
上一条代码是错的,再次更正一下。
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s,s1;//s1是编程语言计数器
int i,l;
int n1[100],n[100];//n是编程语言学习的天数 ,n1是天数计数器
int x,y,z=0;
char a,b;//ab是用来给编程语言排序
cin>>x>>y;//x是编程语言的个数,y是放假的天数
for(int i=0,l=0;i<x,l<x;i++,l++)//输入部分
{
cin>>s[i];
cin>>n[l];
}
for(int i=0;i<x;i++)
{
if(n[i]+z<y)
{
s1[i]=s[i];
n1[i]=n[i];
z=z+n1[i];
}
else
{
s1[i]=' ';
n1[i]=0;
}
}
}
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s,s1;//s1是编程语言计数器
int i;
int n1[100],n[100];//n是编程语言学习的天数 ,n1是天数计数器
int x,y,z;
cin>>x>>y;//x是编程语言的个数,y是放假的天数
for(int i=0;i<x;i++)
{
cin>>s[i];
cin>>n[i];
}
for(int i=0;i<x;i++)
{
if(n[i]+z<y)
{
s1[i]=s[i];
n1[i]=n[i];
z=n[i]+z;
}
else if(n[i]+z>y)
{
break;
}
}
}
我打了代码,但只有一半,如果博主可以自行完成剩下输出部分,那请博主自行完成吧。(^-^)