c++连续输入未知个数的数字操作
看代码吧~
vector<int> v; int num; while (cin >> num) { v.push_back(num); if (num == 0) break; }
方式一:
以空格或者回车结束每次输入,以固定输入数字0结束输入(也可以更改为其他字符)
string test; getline(cin, test); int input_nums = 0; vector<int> indexes; indexes.push_back(0); for (int i = 0; i < test.size(); i++) { if (test[i] == ' ') { input_nums++; indexes.push_back(i); } } int *p = new int[input_nums+1]; for (int i = 0; i <= input_nums; i++) { int start = indexes[i]; int length = (i!=input_nums?indexes[i + 1] - indexes[i]:test.length()- indexes[i]); p[i] = atoi(test.substr(start, length).c_str()); }
方式二:
以空格结束每次输入,将输入当成字符串来处理,以空格分隔字符并转换成int。相对复杂一点。。。
补充知识:c++连续输入未知整数解决方法
最近帮师兄做笔试题,对于连续输入未知数目整数的时候,以前我一直用While(cin>>temp),但是这样做的话需要输入完之后在加上ctrl+z,才能结束输入,但是在做笔试的时候测试数据不可能这样做,导致会出现问题,后来终于找到一个方法解决这个问题,现在写下来防止以后遇到这个问题,也希望能帮助大家。
#include<iostream> #include<vector> using namespace std; int main() { vector<int> Input; int temp; while (cin>>temp) { Input.push_back(temp); if (getchar() == '\n') { break; } } system("pause"); return 0; }
以上这篇c++连续输入未知个数的数字操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
C++通过循环实现猜数字小游戏
C++猜数字小游戏-通过循环实现,供大家参考,具体内容如下 题目:/系统随机生成一个1到100之间的数字,玩家进行猜测,如果猜错提示玩家数字过大或过小,如果猜对恭喜玩家胜利,并且退出游戏.每局游戏只能猜5次 实现: 通过循环和if判断 源码: #include <iostream> #include<ctime> using namespace std; int main() { /*系统随机生成一个1到100之间的数字,玩家进行猜测,如果猜错, 提示玩家数字过大或过小,如果猜对恭
-
C++和python实现阿姆斯特朗数字查找实例代码
1.题目解释 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数. 例如1^3 + 5^3 + 3^3 = 153. 1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407 2.判断一个数是否为阿姆斯特朗数 1.先来一个简单的代码,判断一个数是否为阿姆斯特朗数: 来看看C++写的 #include <iostream> using namespace std; int main() { int n, r, su
-
C++实例输入多行数字到数组
C++输入多行数字到数组 前天做某公司笔试题的时候,其输入格式是多行数字,每行以空格为分隔符,以换行符号为结束输入到多个数组.在JAVA中有相应的函数直接将一行拆成数组,感觉在C++中这中输入方式还是挺奇怪的,今天想出一种解决方式. 思路: 每次读入一个字符,判断是不是EOF,如果是的话跳出循环: 不是EOF将字符放回缓冲区: 读入换行符,说明一行结束,处理数组: 读入字符,如果不是空格,存入一个临时的字符串: 如果是空格,字符串转换成整数并压入数组: 注意: 对于连续的空格输入要进行判断,否
-
C++实现对输入数字组进行排序
本是一个再简单不了的功能,然后只是冒泡排序.可是我在交互输入数列的时候,只用空格隔开然后回车,如果不限定数的个数,用scanf并不能完成这个任务,他循环获取,到最后不能判断获取结束,而只能继续等待输入. 这个时候我自定义一个函数,获取缓存区中的数(空格分隔),如果输入结束就返回一个特定的值,这个函数是用getchar循环嵌套实现的.本人新手,只能弄出这方法.欢迎各位大神指导. maopao-complex.c //比较复杂的数组接收方法,然后从大到小排序.VC环境 #include <stdio
-
c++连续输入未知个数的数字操作
看代码吧~ vector<int> v; int num; while (cin >> num) { v.push_back(num); if (num == 0) break; } 方式一: 以空格或者回车结束每次输入,以固定输入数字0结束输入(也可以更改为其他字符) string test; getline(cin, test); int input_nums = 0; vector<int> indexes; indexes.push_back(0); for (
-
Python 使用input同时输入多个数的操作
我就废话不多说了,大家还是直接看代码吧~ n = input("1st enter:") print(n) print(type(n)) n = int(input("2nd enter:")) print(n) print(type(n)) n, m, c = input("3rd enter:") print(n, m, c) print(type(n)) n, m, c = eval(input("4th enter:"
-
SqlServer生成连续数字根据指定的数字操作
需求是使用sqlserver根据指定的数字和表生成一串连续的数字,类似于oracle中ROWNUM的功能,具体实现如下: 一.Oracle使用ROWNUM实现方式 SELECT ROWNUM number_list FROM 表名 WHERE ROWNUM <= 10; 二.SqlServer实现上述功能的三种方式 1.使用MASTER-spt_values方式 SELECT number FROM MASTER..spt_values WHERE TYPE = 'P' AND number >
-
JavaScript数组的定义及数字操作技巧
一.数组的介绍 数组中的元素类型可以是数字型.字符串型.布尔型等,甚至也可以是一个数组. 二.定义数组 1.通过数组的构造函数来定义数组: var arr=new Array(); var arr=new Array(size); var arr=new Array(element1,element2,...); 2.直接定义数组: var arr=["字符串",true,13]; ps: 和Object一样,此写法不会调用Array()构造函数. 三.数组元素 1.存取数组元素:通过
-
检查输入的是否是数字使用keyCode配合onkeypress事件
复制代码 代码如下: <script language = "javascript" type = "text/javascript"> function check(event){ //用户每按下一个键,就去判断是不是一个数 if(event.keyCode<48 || event.keyCode>57){ window.alert("你输入的不是数字!"); return false; } } </script&
-
C#实现输入10个数存入到数组中并求max和min及平均数的方法示例
本文实例讲述了C#实现输入10个数存入到数组中并求max和min及平均数的方法.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int nu1, max,min,number;
-
Python实现的对一个数进行因式分解操作示例
本文实例讲述了Python实现的对一个数进行因式分解操作.分享给大家供大家参考,具体如下: 在数学中,我们可能会对一个数进行因式分解,如何用Python来实现呢?以下是某位大佬写的算法,这里拿过来直接用就可以了. # 对一个数进行因式分解 def factorization(num): factor = [] while num > 1: for i in range(num - 1): k = i + 2 if num % k == 0: factor.append(k) num = int(
-
Java两种方法计算出阶乘尾部连续0的个数
第一个方法是计算出阶乘然后计算字符串的0的个数. import java.util.Scanner; import java.math.BigDecimal; import java.text.DecimalFormat; public class jc{ public static void main(String args[]){ Scanner reader = new Scanner(System.in); DecimalFormat a = new DecimalFormat("#&q
-
Python如何一行输入多个数,并存入列表
目录 如何一行输入多个数,并存入列表 方法一 方法二 用input()同时输入多个数 1.map( ) 2.split( ) 3.map(function,input(“以空格分开”).split()) 如何一行输入多个数,并存入列表 在python里,如果你仅使用input()的话是输入一行的内容并将该行的内容以字符串的形式存到变量中,但如果你想要在一行输入多个数字的话使用int(input())就没法实现. 注:使用python2版本时可能会报错 相关介绍:Python中列表元素转为数字的方
-
ASp.net 文本框(TextBox)计算,判断输入的是否是数字
复制代码 代码如下: protected void txtQty_TextChanged(object sender, EventArgs e) { checkForm(); } //检验文本信息是否合法,如果合法则开始计算 protected void checkForm() { try { if (!IsNumberic(txtQty.Text) && txtQty.Text != "") { checkbool = false; Response.Write(&q
随机推荐
- Erlang实现的百度云推送Android服务端实例
- Angular用来控制元素的展示与否的原生指令介绍
- windows 7下FTP服务器构建教程
- java使用EditText控件时不自动弹出输入法的方法
- 详解python里使用正则表达式的全匹配功能
- Swift循环遍历集合的方法总结分享
- 支持中文的PHP按字符串长度分割成数组代码
- python文件和目录操作方法大全(含实例)
- PHP数组排序函数合集 以及它们之间的联系分析
- Android Fragment+FragmentTabHost组件实现常见主页面(仿微信新浪)
- 用vbs更改 Internet Explorer 的标题栏
- ipc通道入侵相关命令整理
- jQuery中add()方法用法实例
- C++获取当前进程IAT的方法
- 详解Java的JDBC中Statement与PreparedStatement对象
- 最新最全PHP生成制作验证码代码详解(推荐)
- 查找CiscoWorks故障
- WCF中使用nettcp协议进行通讯的方法
- pandas DataFrame行或列的删除方法的实现示例
- Android网页H5 Input选择相机和系统相册