C++ 输入一行数字(含负数)存入数组中的案例

看了一些博客后发现对C++获取输入数到数组中有些运行错误,是因为没有加载C的标准库。

其实以下代码使用C语言更加合理,但是C的输入输出过于繁琐,因此使用了C++来写。

代码功能:

获取键入的数字存储到数组中,数字包括正数和负数,不录入空格键和换行符。

代码段:

#include<iostream>
#include <stdio.h>
using namespace std;
int main()
{ int i=0;
 int a;
 int num_in[40];
 char c;
 cin>>a; //想要存储的数的数目
 while(i<a)
 {
  c=getchar(); //获取输入字符
  if((c>='0'&&c<='9')||c=='-') //输入正整数、负整数
 {
 ungetc(c,stdin);
 cin>> num_in[i++];
 }
 }
  for(int j=0;j<i;j++)
  {
   cout<<"a["<<j<<"]:"<<num_in[j]<<endl;
  }
  return 0;
 }

结果如下图:

补充知识:C++把输入的一连串逗号分隔的数字存到数组

需求:

输入一连串数字,数字之间逗号隔开,把数字存到数组或者向量里。

代码:

#include <iostream>
#include <string>
#include <vector>
#include "stdio.h"
using namespace std;
int main ()
{
 string s;
 while(cin>>s){
  vector<int>nums;
  char *str = (char *)s.c_str();//string --> char
  const char *split = ",";
  char *p = strtok (str,split);//逗号分隔依次取出
  int a;
  while(p != NULL) {
   sscanf(p, "%d", &a);//char ---> int
   nums.push_back(a);
   p = strtok(NULL,split);
  }
  //printf
  for (int i=0; i<nums.size(); i++) {
   printf ("%d\n",nums[i]);
  }
 }
 return 0;
}

以上这篇C++ 输入一行数字(含负数)存入数组中的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • C++实例输入多行数字到数组

     C++输入多行数字到数组 前天做某公司笔试题的时候,其输入格式是多行数字,每行以空格为分隔符,以换行符号为结束输入到多个数组.在JAVA中有相应的函数直接将一行拆成数组,感觉在C++中这中输入方式还是挺奇怪的,今天想出一种解决方式. 思路: 每次读入一个字符,判断是不是EOF,如果是的话跳出循环: 不是EOF将字符放回缓冲区: 读入换行符,说明一行结束,处理数组: 读入字符,如果不是空格,存入一个临时的字符串: 如果是空格,字符串转换成整数并压入数组: 注意: 对于连续的空格输入要进行判断,否

  • 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 (

  • C++中求旋转数组中的最小数字(经典面试题)

    面试题:旋转数组的最小数字 题目:把一个数组的最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增数组的旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1. 算法: (1)当输入的旋转数组非法时:处理! (2)当输入的旋转数组正常时,index1 = 0:index2=length-1: a:如果arry[index1] <arry[index2]时:说明数组为原数组,并没有进行旋转:    b:如果arry[ind

  • C++ 输入一行数字(含负数)存入数组中的案例

    看了一些博客后发现对C++获取输入数到数组中有些运行错误,是因为没有加载C的标准库. 其实以下代码使用C语言更加合理,但是C的输入输出过于繁琐,因此使用了C++来写. 代码功能: 获取键入的数字存储到数组中,数字包括正数和负数,不录入空格键和换行符. 代码段: #include<iostream> #include <stdio.h> using namespace std; int main() { int i=0; int a; int num_in[40]; char c;

  • python输入整条数据分割存入数组的方法

    通过手动输入数据,将数据分成几部分存入数组中 import os import sys def test(): brick = raw_input("input:") brick = brick.split(",") print brick test() 输入的数据是用逗号分割开的,所以直接使用"split(",")"拆分. 以上这篇python输入整条数据分割存入数组的方法就是小编分享给大家的全部内容了,希望能给大家一个参考

  • 关于C++数组中重复的数字

    目录 1.题目描述 1.1 方法一:排序 1.2 方法二:哈希表 1.3 方法三:数组位置交换 2.题目升级 2.1 方法一:哈希表 2.2 方法二:辅助数组 2.3 方法三:二分查找 1.题目描述 找出数组中重复的数字.在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次. 请找出数组中任意一个重复的数字. 题目示例: 输入:[2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 1.1

  • PHP实现使用DOM将XML数据存入数组的方法示例

    本文实例讲述了PHP实现使用DOM将XML数据存入数组的方法.分享给大家供大家参考,具体如下: <?php $doc = new DOMDocument('1.0','utf-8'); $doc->load("config.xml"); $roots=$doc->documentElement;//获取根节点也就是config(仅有一个) $childs=$roots->childNodes;//获取根节点下所有子节点也就是 db smarty for($i=0

  • java面试题之数组中的逆序对

    题目:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数 例如在数组{7,5,6,4}中,一共存在5对逆序对,分别是{7,6},{7,5},{7,4},{6,4},{5,4}. 看到这个题目,我们的第一反应就是顺序扫描整个数组.每扫描到一个数组的时候,逐个比较该数字和它后面的数字的大小.如果后面的数字比它小,则这两个数字就组成一个逆序对.假设数组中含有n个数字.由于每个数字都要和O(n)个数字做比较,因此这个算法的时间复杂度为

  • java 输入一个数字组成的数组(输出该数组的最大值和最小值)

    一.需求分析: 1.输入一个数组----------------------------------------->程序要接收一组输入的数组,没有明确这组数组有多大 2.一个数字组成的数组-------------------------------->接收到的数组只能是数字 3.输出接收到数组的最大值和最小值-------------->得到最大和最小值 二.技术难点 1.怎么从用户输入获取到一个数字数组? 可以用BufferedReader类:从字符输入流中读取文本,缓冲各个字符,从

  • JS验证 只能输入小数点,数字,负数的实现方法

    如下所示: <script language="JavaScript" type="text/javascript"> function clearNoNum(event, obj) { //响应鼠标事件,允许左右方向键移动 event = window.event || event; if (event.keyCode == 37 | event.keyCode == 39) { return; } var t = obj.value.charAt(0

  • 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;

  • php求正负数数组中连续元素最大值示例

    php实现正负数数组最大子序列,要求给出数组,该数组由正负数字组成,找出该数组中连续元素组成的子数组的最大值.这其实得算是个背包变种吧. 复制代码 代码如下: <?php$list = array(1,-3,-5,-7,8,9,-11,5); $cur = 0;$term = 0;$res = 0;$begin = 0; foreach($list as $k => $v){ $cur += $v; if($cur < 0){  $cur = 0;  $begin = $k + 1; }

  • java 输入一个数字,反转输出这个数字的值(实现方法)

    如下所示: package 第四天; import java.util.Scanner; public class 数字反转 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数:"); int num=sc.nextInt(); int result=0;//存反转的数字 while(true) { int n=num%10

随机推荐