-
2021-09-29 10:48:53
先开一个足够大的数组,在取值
int arr[1024] = {0}; int n,i = 0; do{ scanf("%d", &n); arr[i++] = n; }while( getchar() != '\n');
输入样例:
3 2 1 4 5
检查输入是否为换行,是的话输入结束更多相关内容 -
如何输入未确定长度的数组
2021-10-04 21:11:44今天用许久未碰的C语言写数据结构作业时遇到了这个问题,在不确定要输入的整型数组长度时我们应该如何输入,并用回车结束输入?如:LA=(3,5,8,11),LB=(2,6,8,9,11,15,20) 在这给出两种解决办法 int count=0; ...如何输入未确定长度的数组
今天用许久未碰的C语言写数据结构作业时遇到了这个问题,在不确定要输入的整型数组长度时我们应该如何输入,并用回车结束输入?如:LA=(3,5,8,11),LB=(2,6,8,9,11,15,20)
在这给出两种解决办法int count=0; int a[1024]={0}; while(1) { scanf("%d",&a[count]);/*这里其实有个bug,如果你输入的是一个空 数组,即直接回车的话程序会卡在这里,因为scanf需要接收到一个整型数据*/ count++; if(getchar() == '\n')//遇到换行时跳出循环 { break; } } for(temp=0;temp<count;temp++)//打印结果 { printf("%d ",a[temp]); } printf("\n%d",count);
如果你不希望在while循环中再进行判断,那么可以使用do while
int count=0;//count用于计数 int a[1024]={0}; do//注意,不能直接使用while(getchar!='\n),而应该使用do while, //因为前者会导致第一个数据丢失(程序运行先进入判断条件第一个数字被getchar拿走) { scanf("%d",&a[count]); count++; }while(getchar()!='\n');//遇到换行时结束循环 for(temp=0;temp<count;temp++)//打印结果 { printf("%d ",a[temp]); } printf("\n%d",count);
以上也只是我临时查阅资料,经过调试之后总结出来的,限于知识水平难免有错漏之处,请多指正包涵。
-
JAVA中输入不知道长度的数组
2018-08-12 18:09:02JAVA中输入不知道长度的数组 一、整型数组 例如 input: 3// 数组长度n 1 2 3//数组,注意数组是无法直接输出的,要转化为字符串才能输出。 方法一: import java.util.Arrays; import java.util.Scanner; ...JAVA中输入不知道长度的数组
一、整型数组
例如
input:
3// 数组长度n
1 2 3//数组,注意数组是无法直接输出的,要转化为字符串才能输出。
方法一:
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { /* * 循环连续输入和输出 * 输入:一个数字 3 * 一个数组 1 2 3 */ Scanner x=new Scanner(System.in); while(x.hasNext()){ int m=x.nextInt(); //System.out.println(m); int[] number=new int[m]; for(int i=0;i<m;i++){ number[i]=x.nextInt(); } // Arrays.sort(number); System.out.println(Arrays.toString(number)); } } }
方法二:
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { /* * 循环连续输入和输出 * 输入:一个数字 3 * 一个数组 1 2 3 */ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int a[] = new int[n]; for(int i=0; i<n; i++) a[i] = sc.nextInt(); String intArrayString = Arrays.toString(a); System.out.println(intArrayString); } }
二、字符串数组转化为整型数组
1、空格+整型。首先输入字符串的数组,中间用空格分隔,然后获取字符串长度,作为int[] 初始数组的长度,再将String字符串数组转化为int数组。
public static void main(String[] args){ Scanner sc=new Scanner(System.in); String[] nums = null; nums = sc.nextLine().split(" "); int num[]=new int[nums.length]; for(int i=0;i<num.length;i++){ num[i]=Integer.valueOf(nums[i]); } }
2、逗号+下横线。
public class Demo{ public static void main(String[] args) { String str = "a,b_a,b_a,b"; String[] temp = str.split("_"); String[][] temp2 =new String[3][2]; for(int i=0;i<temp.length;i++) { temp2[i] = temp[i].split(","); } for(int i=0;i<temp2[0].length;i++) { for(int j=0;j<temp2[1].length;j++) { for(int l=0;l<temp2[2].length;l++) { System.out.println(temp2[0][i]+"_"+temp2[1][j]+"_"+temp2[2][l]); } } } } }
-
C++输入未知长度的数组
2019-06-23 18:33:07假如要输入一组数字进行排序,但是不知道有多少个数字 静态数组int array[10],它的长度必须是个常数才可以定义。如果知道数组长度n,可以先cin>>n;然后用动态数组int* array = new int[n]。但是如果不知道...注意:该作者博客已迁移至https://buxianshan.xyz
假如要输入一组数字进行排序,但是不知道有多少个数字
静态数组int array[10],它的长度必须是个常数才可以定义。如果知道数组长度n,可以先cin>>n;然后用动态数组int* array = new int[n]。但是如果不知道数组长度,该怎么定义呢?
经过查找资料,终于找到了一种解决方法。使用STL中的vector。
STL
STL是Standard Template Library的简称,中文名标准模板库。根本上说,STL是一些“容器”的集合,这些“容器”有 list, vector, set, map 等。STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。STL是C++的一部分,因此不用安装额外的库文件。
在C++标准中,STL被组织为下面的13个头文件:<algorithm>、<deque>、<functional>、<iterator>、<vector>、<list>、<map>、<memory>、<numeric>、<queue>、<set>、<stack>和<utility>。vector
vector(向量):是一种顺序容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组,它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。
简单用法:
定义一个vector,元素为 int 型的容器array,可以简单理解为一个整型数组。vector<int> array;
在它末尾添加一个数字
array.push_back(number);
返回数组长度
array.size();
所以输入未知长度的数组可以这样写:
#include<iostream> #include<vector>//引入vector头文件 using namespace std; int main() { vector<int> array;//定义一个vector数组array int number; while (1) { cin >> number; array.push_back(number);//每输入一个数字就把它添加到数组的最后 if (cin.get() == '\n')//如果是回车符则跳出循环 break; } int len = array.size();//返回数组长度为len //下面遍历一遍数组看看对不对 for (int i = 0; i < len; i++) { cout << array[i] << endl; } return 0; }
测试截图:
已经完成了输入和保存数组
STL的<algorithm>库中也提供了很多排序算法,遍历vector也可以使用迭代器。总之STL集成了很多优秀的算法,熟悉使用可以提高开发效率。还有很多需要学习的东西。
参考
- https://www.cnblogs.com/SarahZhang0104/p/5749680.html
- https://blog.csdn.net/lizhentao0707/article/details/82224807
- https://www.cnblogs.com/aiguona/p/7228364.html
- https://baike.baidu.com/item/STL/70103?fr=aladdin
-
不确定长度的数组输入
2021-05-17 21:00:23不知道要输入几个数的时候输入,整体用字符串输入,再用空格给它分开成几部分即可。 注意String s=reader.nextLine();不能写成reader.next(); 代码: import java.util.Scanner; public class eightyfive { public ... -
如何输入任意长度的数组
2020-01-21 10:02:47在写代码的时候我们经常遇到这样的问题:要输入一个未确定长度的数组。解决这个问题,我们可以这样做: #include using namespace std; int main() { int n; cin>>n; int *a=new int[n]; for(int i=0;i<n;i... -
C语言输入未知长度字符数组
2019-02-10 15:31:03C语言输入未知长度字符数组 问题描述:在最基础的C语言中使用scanf()函数简单输入一行长串字符数组,以回车结束。储存每一个字符以参与后面的运算,或者将他们打印下来。 细节问题 回车(enter)结束——指的是以... -
java 定义一个未知长度数组
2021-11-29 11:23:431、在java中可以通过变量表示数组的长度,定义数组的时候传递这个变量,new String[length] ,就可以在程序运行的时候动态定义一个数组 下面是示例代码: public class Test { public static void main(String[] ... -
C++从键盘读入任意长度的数组
2021-12-22 10:52:58刷算法题时经常会遇到要输入任意长度的数组,可使用以下这种方法实现。 #include<bitsdc++.h> using namespace std; int main() { char ch; int n; vector<int> nums; cout<<"以空格为间隔... -
零长度数组
2019-12-22 22:21:51什么是零长度数组 顾名思义,零长度数组就是长度为0的数组。 ANSI C 标准规定:定义一个数组时,数组的长度必须是一个常数,即数组的长度在编译的时候是确定的。在ANSI C 中定义一个数组的方法如下: int a[10];... -
java编程:输入int数组的方法一(不知道长度)
2017-08-27 15:31:12输入int数组的方法一(不知道长度) -
golang和python实现未知长度数组的不同
2021-05-02 17:39:151、python里面定义未知长度数组 python里面数组可以声明一个未知长度的数值 比如python可以这样定义: #!/usr/bin/python3 a1=[] for i in range(0,10): a1[i]=str(i)+"a" #print(i) 执行报错:IndexError:... -
Java如何输入不确定长度的数组
2017-08-26 17:00:37数组排序和去重 Arrays.sort(A); List <Integer> list = new ArrayList(); //数组去重 for (int i= 0 ;i;i++){ if (A[i]> 0 &&! list .contains(A[i])){ list .add(A[i]); System.out. print (A... -
Java实现不确定长度的情况下数组输入
2019-08-31 12:19:26稍作修改,实现了在数组长度不确定的情况下进行输入并求和的功能 : import java.util.Scanner; public class main { public static void main(String arge[]){ String[] str = new String[0]; Scanner ... -
如何使输入的数字成为数组的长度?
2017-08-13 15:40:45写代码的时候,数组一般要指定长度或者直接赋初值,如果...但是我想把自己从键盘输入的值作为数组的长度随时改变,那该怎么做呢? 使用动态数组可以做到: int size; cin>>size; int *shuzu=new int [size]; 这样就行 -
C语言0长度数组(可变数组/柔性数组)详解
2017-03-20 19:37:26C语言0长度数组(可变数组/柔性数组)详解 CSDN GitHub C语言0长度数组(可变数组/柔性数组)详解 AderXCoding/language/c/zero_length_array 本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议... -
循环遍历不确定长度数组
2017-05-04 18:07:27在做项目的时候,更新界面,我们可以在请求成功的时候把选中的实体移除,如果父类就有...在遍历不确定的长度的数组时,我们选中用迭代器Iterator<CustomAfterAcceptNumberBean> it = acceptNumberData.iterator(); wh -
c++ 输入不定长的字符数组
2020-04-19 14:54:14OJ题目中总会出现给定一个字符串,删除其中某些字符的题目,但输入不会给字符串的长度。 网上有的方法是先定义一个超大的数组,然后用这个大数组来储存数据,但我不喜欢这个方法,不但浪费空间,如果题目给定字符串... -
java编程输入一个长度未知的int数组
2019-02-13 19:32:58java中可以直接输入字符串数组,但是输入int[] 数组时需要事先定义长度,但有些题目中的长度是可变的,不能事先固定数组长度。首先输入字符串的数组,中间用空格分隔,然后获取字符串长度,作为int[] 初始数组的... -
C++输入获取未知长度的行输入数组 与 输出控制
2017-09-01 21:35:51C++输入获取未知长度的行输入数组 与 输出控制 -
定义任意长度数组
2020-02-11 13:10:58 -
C++创建自定义长度数组小技巧
2021-09-05 20:01:55大家都知道C++如果直接创建数组,必须要指定数组的长度,而有时候所需要数组的长度不是固定的,比如我需要从控制台输入一个数,创建这个数的长度的数组,那该怎么办呢?这里教大家一个小技巧,话不多说直接上代码。 ... -
JS 创建 指定长度 数组
2020-04-07 15:37:54JS 创建 指定长度 数组 -
声明固定长度数组及初始化
2020-03-05 15:32:37//一维数组 len = 10; A = zeros(1,len); //多维数组,数组为i X 10 len = 10; A = zeros(i,len); -
C++实现不定长数组输入(不需要定义分配空间大小)
2019-01-28 22:28:06一串整型数据,不知道要输入数据的长度是多少,现在要存到一个数组中,怎么办? 换一种说法就是,其实懒懒的我在想c++能不能实现python里 array=input(); 这种非常简单的、不需要确定数组长度就能输入一串数字... -
c语言数组不确定长度_如何在C中确定数组的长度
2020-08-28 11:09:35c语言数组不确定长度C does not provide a built-in way to get the size of an array. You have to do some work up front. C没有提供获取数组大小的内置方法。 您必须先做一些工作。 I want to mention the ... -
mongo数组长度 数组内容 查询
2017-12-20 17:17:00在网上关于mongo数组查询的太少了,现在贡献一下 假设数据库里有一条这样的数据 { "name": "arrayTest", "arrayKey": ["a","b"] } 查询 arrayKey长度是2的数据 :{arrayKey:{"$size":2}} 查询arrayKey内容是 ... -
Java实现字节数组中截取指定长度数组元素
2020-11-19 15:24:18本文使用System提供的一个静态方法arraycopy(),实现数组间的复制。 public static native void arraycopy(Object src,int srcPos,Object dest, int destPos,...例子:在字节数组中截取指定长度数组 public sta.. -
C++读取一串未知长度的数组并保存
2019-09-09 21:11:44例如做题时输入一串数组,以空格隔开,但是不知道数组的长度,就可以用下面这段代码来读取,最后保存进 vector 里面。 #include<iostream> #include<vector> using namaspce std; int main() { char c...