【题目49:装快递(C++) ; ps:输入一行数据(带逗号或空格)更好的输入方式】
/*
一辆运送快递的货车。运送的快递均放在大小不等的长方形快递盒中
为了能够装载更多的快递 同时不能让货车超载
需要计算最多能装多少个快递
快递的体积不受限制
快递数量最多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:输入一行数据(带逗号或空格)更好的输入方式】相关推荐
- C语言输入一行数据分别统计出其中英文字母、 空格、数字和其他字符的个数并输出结果
#输入一行数据(包括数字,英文字母,常见字符,空格),分别统计出其中英文字母. 空格.数字和其他字符的个数并输出结果:再把其中的数字按顺序输出出来 ##代码部分: #include <stdio ...
- C语言如何读取一行数据,直到按空格结束
1, while (scanf("%c", &c) != EOF) 这样的坏处是,会把空格也当成输入写入 2,while循环内加一个if判断 当输入了回车后就会结束scan ...
- 输入一行字符,分别统计出包含英文字母、空格、数字
题目描述: 输入一行字符,分别统计出包含英文字母.空格.数字和其它字符的个数. 输入描述: 输入一行字符串,可以有空格 输出描述: 统计其中英文字符,空格字符,数字字符,其他字符的个数 思路: imp ...
- C/C++输入一行每隔一个空格一个数据
1. 已知数据个数 题设让先输入数据个数,再另起一行,每隔一个空格输入一个整数.程序如下: int N; int nArr[100]; cin>>N; //如果是C语言,这里就是scanf ...
- ACMNO.25 C语言-间隔输出 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出1 9 9 0。 输入 一个四位数 输出 增加空格输出
题目描述 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格.如输入1990,应输出"1 9 9 0". 输入 一个四位数 输出 增加空格输出 样例输入 199 ...
- java键盘输入怎么输入汉字,图文教你java怎么接收从键盘输入的字符串
电脑现已成为我们工作.生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到java怎么接收从键盘输入的字符串的问题,如果我们遇到了java怎么接收从键盘输入的字符串的情况,该怎么处理怎么才能解决 ...
- 用Excel把一列数据转变成一行,并用逗号隔开
用Excel把一列数据转变成一行,并用逗号隔开 在公式栏里输入 =TEXTJOIN(",",TRUE,A1:A256),其中A1:A256是指这一列数据是从A这一列的第一行到第25 ...
- 取余c语言输入一行中一个正整数n pta,正整数
1094:与7无关的数 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 30249 通过数: 20225 [题目描述] 一个正整数,如果它能被7整除,或者它 ...
- python接收输入的一行字符只统计数字的个数,Python(统计字符),python实例,输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数...
Python(统计字符),python实例,输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数 题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 程序分析:利用 ...
最新文章
- PHP_编码问题汇总
- 免费报名丨网易、腾讯、唯品会等100位名企超资深营销增长官,约你闭门“搞事情”...
- 前端如何实现音乐盒胶盘的转动_郑州Web前端入门教程之如何实现图片优化?
- [异步、tensorflow] - 子线程操作tensor,主线程处理tensor
- domino从Excel导入数据
- Android缓存学习入门(二)
- 【干货索引】阿里云大数据计算服务MaxCompute与生态系统的融合
- 4g网络切换软件_5G 网络NSA与SA模式 互操作策略研究
- docker专题(2):docker常用管理命令(下)
- Cygwin用户改名、机器改名
- WPF 加载GIF图片
- 利用PHP GD库生成位图
- Airflow Architecture
- Linux 中有效用户组和初始用户组
- 前端大屏展示框架搭建(一)
- EasyCVR家庭远程视频监控解决方案
- java.lang.RuntimeException: Unable to start receiver com.yeliner.example.fragmentnews.receiver.Offl
- HashMap原理浅析(关于红黑树是什么?)
- 我有一个计算机梦想作文500,我的梦想作文500字
- 「知其所以然」前端技术专家需要掌握的原理