美文网首页
输入不定长度的数组

输入不定长度的数组

作者: Keizo | 来源:发表于2017-08-26 22:32 被阅读0次

某些算法题的输入没有要求输入长度,而是直接输入长度未知的数组

下面讲讲如何方便地输入不定长度的数组:

  1. 我在一次笔试中第一次遇到这种输入数组的方式,当时想的比较复杂,直接是按照字符串输入,然后处理字符串,将数组赋值。
#include <iostream>
using namespace std;
int main()
{
    string str;
    int nums[5000] = {0};
    getline(cin, str);
    int i, count = 0;
    for (i = 0; i<= str.length(); i++) {
        if (str[i] == ' ' || str[i] == '\0') {
            int j = i-1;
            int plus = 1;
            while (j >= 0) {
                if (str[j] == '-') { //是负数
                    nums[count] *= -1;
                    count++;
                    break;
                }
                if (str[j] <= '9' && str[j] >= '0') {
                    nums[count] += plus * (str[j] - '0');
                    plus *= 10;
                    j--;
                    if (j < 0) count++; //算上第一个数
                } else {
                    count++;
                    break;
                }
            }
        }
    }
    for (i = 0; i < count; i++) {
        cout<<nums[i]<<" ";
    }
    cout<<endl;
}
  1. 然而笔试后我上网看了一下网友的分享,发现了更简单的用法:
#include <stdio.h>
int main(){
    int num;
    int i = 0, count = 0;
    int arr[10];
    while(1){
        scanf("%d", &num);
        count++;
        char c = getchar();
        arr[i++] = num;
        if(c == '\n'){ //监测到回车
            break;
        }
    }
    for (i = 0; i < count; i++) {
        cout<<arr[i]<<" ";
    }
    cout<<endl;
}

相关文章

  • 输入不定长度的数组

    某些算法题的输入没有要求输入长度,而是直接输入长度未知的数组 下面讲讲如何方便地输入不定长度的数组: 我在一次笔试...

  • 面试题3:数组中重复的数字

    测试用例: 长度为n的数组里包含一个或者多个重复的数字 数组中不包含重复的数字 无效输入测试用例(输入空数组;长度...

  • 2020-05-23 Class 14数组

    访问数组元素是间接访问 //输入数组各元素//一个形参是数组,一个是数组的长度 //将长度为n的数组,扫描数组然后...

  • 栈-N907-子数组的最小值之和

    题目 概述:给定一个数组,求该数组的所有连续子数组最小元素的和 输入:整数数组,长度范围[1, 30000] 输入...

  • 字符数组长度和字符串长度

    1.字符数组长度和字符串长度 char a[] = "hello"; 输入内容如下,因为char数组会在末尾添加一...

  • 小练习(一)

    题目描述:给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。 示例:输入:A: [1,2...

  • 2018-12-19 记录数组中数字的个数

    —————————————————————————— 创建数组nums[],长度为10,存储用户输入的数字; 创建...

  • LeetCode刷题笔记1:最长重复子数组

    题目描述: 给两个整数数组A和B,返回两个数组中公共的、长度最长的子数组的长度。 示例: 输入:A: [1,2,3...

  • LeetCode 718. 最长重复子数组

    题目 给两个整数数组 nums1 和 nums2 ,返回两个数组中公共的 、长度最长的子数组的长度 。 例:输入:...

  • 连续子数组的最大和

    描述 输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组,子数组最小长度为1。求所有子...

网友评论

      本文标题:输入不定长度的数组

      本文链接:https://www.haomeiwen.com/subject/qmivdxtx.html