/*
一辆运送快递的货车。运送的快递均放在大小不等的长方形快递盒中
为了能够装载更多的快递 同时不能让货车超载
需要计算最多能装多少个快递
快递的体积不受限制
快递数量最多1000个
货车载重量50000

    输入描述:第一行输入 每个快递重量 用逗号分隔如5,10,2,11第二行 输入 货车的载重量如20不需要考虑异常输入输出描述:输出最多能装多少个快递货车的载重量为20 最多只能放3种快递 5,10,2因此输出3示例1:输入5,10,2,1120输出3*/

此解法刚开始输入的选择方式有点复杂。。。。。。用的string 存放输入的数据 。把逗号问题用字符串分隔的处理方式。着实有点笨重。

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int print(int weight,vector<int>&arr,int p)
{int count = 0;for (int i = 0; i < arr.size(); i++){if (weight<= p){weight +=arr[i];count++;}if (weight > p){return   count-1;}}
}
int main()
{string  num;string s1;vector<int>arr;int pos = 0, p = 0, weight = 0;cin >> num;num += ',';cin >> p;for (int i = 0; i < num.size(); i++){if (num[i] == ',') {string s1 = num.substr(pos, i - pos);arr.push_back(atoi(s1.c_str()));pos = i+1;}}sort(arr.begin(), arr.end());int res=print(weight,arr,p);cout << res;return 0;}

本题输入的字符串转换成各个货物的重量的方法用的是:先以字符串形式存放(因为货物重量会是双数,转换时要转换字符串是两个或以上,防止一个字符串转成多个数据),再放入到int容器时atoi转换待放入的元素。

有没有更好的方法?

本题是应该每次输入的数据都应该是“原本”的数据类型(int),逗号在这里可以巧妙的处理,因为:

 int temp;cin >> temp;arr.push_back(temp);cout << temp;


之后加上循环,getchar()处理最后一个输入的数据 ,是换行就退出。

while (cin >> temp) {arr.push_back(temp);if (getchar() == '\n')break;}

cin>> 输入的数据编译器发现不是temp的int型,就退出输入那行代码, 然后继续添加数据,没有换行符继续cin,一直循环往复,最后遇到换行符结束循环。

【题目49:装快递(C++) ; ps:输入一行数据(带逗号或空格)更好的输入方式】相关推荐

  1. C语言输入一行数据分别统计出其中英文字母、 空格、数字和其他字符的个数并输出结果

    #输入一行数据(包括数字,英文字母,常见字符,空格),分别统计出其中英文字母. 空格.数字和其他字符的个数并输出结果:再把其中的数字按顺序输出出来 ##代码部分: #include <stdio ...

  2. C语言如何读取一行数据,直到按空格结束

    1, while (scanf("%c", &c) != EOF) 这样的坏处是,会把空格也当成输入写入 2,while循环内加一个if判断 当输入了回车后就会结束scan ...

  3. 输入一行字符,分别统计出包含英文字母、空格、数字

    题目描述: 输入一行字符,分别统计出包含英文字母.空格.数字和其它字符的个数. 输入描述: 输入一行字符串,可以有空格 输出描述: 统计其中英文字符,空格字符,数字字符,其他字符的个数 思路: imp ...

  4. C/C++输入一行每隔一个空格一个数据

    1. 已知数据个数 题设让先输入数据个数,再另起一行,每隔一个空格输入一个整数.程序如下: int N; int nArr[100]; cin>>N; //如果是C语言,这里就是scanf ...

  5. ACMNO.25 C语言-间隔输出 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出1 9 9 0。 输入 一个四位数 输出 增加空格输出

    题目描述 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格.如输入1990,应输出"1 9 9 0". 输入 一个四位数 输出 增加空格输出 样例输入 199 ...

  6. java键盘输入怎么输入汉字,图文教你java怎么接收从键盘输入的字符串

    电脑现已成为我们工作.生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到java怎么接收从键盘输入的字符串的问题,如果我们遇到了java怎么接收从键盘输入的字符串的情况,该怎么处理怎么才能解决 ...

  7. 用Excel把一列数据转变成一行,并用逗号隔开

    用Excel把一列数据转变成一行,并用逗号隔开 在公式栏里输入 =TEXTJOIN(",",TRUE,A1:A256),其中A1:A256是指这一列数据是从A这一列的第一行到第25 ...

  8. 取余c语言输入一行中一个正整数n pta,正整数

    1094:与7无关的数 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 30249     通过数: 20225 [题目描述] 一个正整数,如果它能被7整除,或者它 ...

  9. python接收输入的一行字符只统计数字的个数,Python(统计字符),python实例,输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数...

    Python(统计字符),python实例,输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数 题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 程序分析:利用 ...

最新文章

  1. PHP_编码问题汇总
  2. 免费报名丨网易、腾讯、唯品会等100位名企超资深营销增长官,约你闭门“搞事情”...
  3. 前端如何实现音乐盒胶盘的转动_郑州Web前端入门教程之如何实现图片优化?
  4. [异步、tensorflow] - 子线程操作tensor,主线程处理tensor
  5. domino从Excel导入数据
  6. Android缓存学习入门(二)
  7. 【干货索引】阿里云大数据计算服务MaxCompute与生态系统的融合
  8. 4g网络切换软件_5G 网络NSA与SA模式 互操作策略研究
  9. docker专题(2):docker常用管理命令(下)
  10. Cygwin用户改名、机器改名
  11. WPF 加载GIF图片
  12. 利用PHP GD库生成位图
  13. Airflow Architecture
  14. Linux 中有效用户组和初始用户组
  15. 前端大屏展示框架搭建(一)
  16. EasyCVR家庭远程视频监控解决方案
  17. java.lang.RuntimeException: Unable to start receiver com.yeliner.example.fragmentnews.receiver.Offl
  18. HashMap原理浅析(关于红黑树是什么?)
  19. 我有一个计算机梦想作文500,我的梦想作文500字
  20. 「知其所以然」前端技术专家需要掌握的原理

热门文章

  1. python控制电机_树莓派使用Python控制步进电机
  2. FPGA学习-VGA接口
  3. 【python turtle画图】太极图绘制实例
  4. matlab实例——三维心心图
  5. MIMO信号检测MMSE-SIC基于SINR性能相较于MMSE性能提升分析
  6. 数字IC笔面基础之触发器——DFF、TFF、JKFF(附Verilog实现)
  7. Log-Pilot 源码简析
  8. Minio设置永久下载链接(2020)
  9. scrcpy设置快捷键_(转载)scrcpy——Android投屏神器(使用教程)
  10. 数据库系统概论——函数依赖、码和范式(1NF、2NF、3NF、BCNF)详解