精华内容
下载资源
问答
  • 新手刚学python,用的是python3.4,想通过input输入二维数组后程序用数组中的元素进行运算,运行时有错误代码ValueError: invalid literal for int() with base 10, 该怎么解决?如果不能直接输入的话,是否可以通过...
  • c++中利用vector创建并输入二维数组时不能利用传统的输入方法cin>>要利用到vector创建一维数组并将其插入二维数组内。代码如下: # int b[3][3] = { { 1,1,1 },{ 1,0,1 },{ 1,1,1 } }; vector<vector<...

    c++中利用vector创建并输入一维数组

    一维数组:
    vector<int> a;
    int b[5] = {1,2,3,4,5};
    a.push_back(b);
    

    c++中利用vector创建并输入二维数组时不能利用传统的输入方法cin>>要利用到vector创建一维数组并将其插入二维数组内。代码如下:

    # int b[3][3] = { { 1,1,1 },{ 1,0,1 },{ 1,1,1 } };
    	vector<vector<int>> a(3, vector<int>(3));
    	int i, j;
    	for (i = 0; i < 3; i++)
    	{
    		for (j = 0; j < 3; j++)
    		{
    			a[i][j] = b[i][j];
    		
    		}
    		cout << endl;
    	}
    
    	setZeroes(a);
    	//while (1);
    	cout << "输出矩阵: " << endl;
    	for (int i = 0; i <3; i++)
    	{
    
    		for (int j = 0; j < 3; j++)
    		{
    
    			cout << a[i][j];
    
    		}
    		cout << endl;
    	}
    

    方法 2

    #include<iostream>
    #include<vector>
    using namespace std;
     
    void main()
    {
    	int r = 0, c = 0;
    	cout << "Enter r: ";//规定二维数组行数
    	cin >> r;
    	cout << "Enter c: ";//规定二维数组列数
    	cin >> c;
     
    	vector<vector<int>>array;//定义二维数组
    	vector<int>v;//定义一维数组
    	array.clear();//将二维数组清空,或初始化(初始化代码很简单,不会可以百度)//也可不用这一步
    	int temp=0;
    	for (int i = 0; i < r; i++)//输入r*c的二维数组
    	{
    		v.clear();//子数组返回时要清除
    		for (int j = 0; j < c; j++)
    		{
    			cin >> temp;
    			v.push_back(temp);
     
    		}
    		array.push_back(v);
    	}
     
    	for (int i = 0; i < r; i++)//打印输入的二维数组
    	{
    		for (int j = 0; j < c; j++)
    		{
    			cout << array[i][j] << " ";
     
    		}
    		printf("\n");
    	}
    	while (1);
    }
    

    或者

    int rows, cols;
    //cin >> rows;
    //cin >> cols;
    while (cin >> rows >> cols)
    {
    	vector<vector<int>> array;
    	vector<int>v;
    	int temp;
    	for (int i = 0; i < rows; i++)
    	{
    
    		//v.clear();
    		vector<int>v;
    		for (int j = 0; j < cols; j++)
    		{
    			cin >> temp;
    			v.push_back(temp);
    
    
    		}
    		array.push_back(v);
    
    	}
    
    	cout << "输入矩阵: " << endl;
    	for (int i = 0; i < rows; i++)
    	{
    
    		for (int j = 0; j < cols; j++)
    		{
    
    			cout << array[i][j];
    
    		}
    		cout << endl;
    	}
    
    	setZeroes(array);
    	//while (1);
    	cout << "输出矩阵: " << endl;
    	for (int i = 0; i < rows; i++)
    	{
    
    		for (int j = 0; j < cols; j++)
    		{
    
    			cout << array[i][j];
    
    		}
    		cout << endl;
    	}
    
    
    
    }
    
    展开全文
  • 用C++语音实现一维数组二维数组写入txt,从txt中读取数据存到一维数组、二维数组,数组用指针表示
  • Python输入数组(一维数组、二维数组

    万次阅读 多人点赞 2018-08-09 20:14:34
    一维数组: arr = input("") //输入一个一维数组,每个数之间使空格隔开 num = [int(n) for n in arr.split()] //将输入每个数以空格键隔开做成数组 ...(以n*n的二维数组为例) n = int(input()) /...

    一维数组:

    arr = input("")    //输入一个一维数组,每个数之间使空格隔开
    num = [int(n) for n in arr.split()]    //将输入每个数以空格键隔开做成数组
    print(num)        //打印数组

    一维数组输入输出示例: 

     

    二维数组:

    (以n*n的二维数组为例)

    n = int(input())        //输入二维数组的行数和列数
    line = [[0]*n]*n        //初始化二维数组
    for i in range(n):
        line[i] = input().split(" ")       //输入二维数组,同行数字用空格分隔,不同行则用回车换行
    print(line)            //打印二维数组

    二维数组打印示例:

    如果二维数组中的元素都为整型,可加上: 

    line[i] = [int(j) for j in line[i]]

    即输入:

    n = int(input())        //输入二维数组的行数和列数
    line = [[0]*n]*n        //初始化二维数组
    for i in range(n):
        line[i] = input().split(" ")       //输入二维数组,同行数字用空格分隔,不同行则用回车换行
        line[i] = [int(j) for j in line[i]]    //将数组中的每一行转换成整型
    print(line)            //打印二维数组

     

    展开全文
  • C语言总结第七章、数组一维数组一维数组的定义一维数组的引用一维数组的初始化程序举例二维数组及多维数组二维数组的定义二维数组元素的引用二维数组元素的初始化程序举例字符数组和字符串字符数组 第七章、数组 ...

    第七章、数组

    数组是构造数据类型之一

    • 数组: 有序数据的集合,用数组名标识
    • 元素: 属同一数据类型,用数组名和下标确定

    一维数组

    一维数组的定义

    定义方式:
    在这里插入图片描述
    例: int a[6]
    在这里插入图片描述

    一维数组的引用

    1、数组必须先定义,后使用。
    2、只能逐个引用数组元素,不能一次引用整个数组。
    3、数组元素表示形式: 数组名[下标] ,下标可以是常量或整型表达式

    一维数组的初始化

    初始化方式:
    在这里插入图片描述

    说明:
    1、数组不初始化,其元素值为随机数。
    2、对static数组元素不赋初值,系统会自动赋以0值。
    在这里插入图片描述
    3、只给部分数组元素赋初值。
    在这里插入图片描述
    4、当全部数组元素赋初值时,可不指定数组长度。
    在这里插入图片描述

    程序举例

    例1: 读10个整数存入数组,找出其中最大值和最小值
    在这里插入图片描述

    /*示例1*/
    #include <stdio.h>
    #define SIZE 10
    main()
    {   int x[SIZE],i,max,min;
        printf("Enter 10 integers:\n");
        for(i=0;i<SIZE;i++)
        {   printf("%d:",i+1);
    	scanf("%d",&x[i]);
        }
        max=min=x[0];
        for(i=1;i<SIZE;i++)
        {  if(max<x[i])  max=x[i];
           if(min>x[i])  min=x[i];
        }
        printf("Maximum value is %d\n",max);
        printf("Minimum value is %d\n",min);
    }
    

    例2: 用数组求Fibonacci数列前20个数
    在这里插入图片描述

    /*示例2*/
    #include <stdio.h>
    main()
    {   int i;
         int f[20]={1,1};
        for(i=2;i<20;i++)
           f[i]=f[i-2]+f[i-1];
        for(i=0;i<20;i++)
        {   if(i%5==0)  printf("\n");
             printf("%12d",f[i]);
        }
    }
    

    例3: 用冒泡法对10个数排序
    在这里插入图片描述
    在这里插入图片描述

    /*示例3*/
    #include <stdio.h>
    main()
    {   int a[11],i,j,t;
        printf("Input 10 numbers:\n");
        for(i=1;i<11;i++)
           scanf("%d",&a[i]);
        printf("\n");
        for(j=1;j<=9;j++)
           for(i=1;i<=10-j;i++)
              if(a[i]>a[i+1])
             {t=a[i]; a[i]=a[i+1]; a[i+1]=t;}
        printf("The sorted numbers:\n");
        for(i=1;i<11;i++)
    	printf("%d ",a[i]);
    }
    

    例4: 用简单选择法对10个数排序

    在这里插入图片描述

    在这里插入图片描述

     /*示例4*/
    #include <stdio.h>  
    main()
    {   int a[11],i,j,k,x;
        printf("Input 10 numbers:\n");
        for(i=1;i<11;i++)
           scanf("%d",&a[i]);
        printf("\n");
       for(i=1;i<10;i++)
       {  k=i;
          for(j=i+1;j<=10;j++)
                if(a[j]<a[k])  k=j;
          if(i!=k)
          {  x=a[i]; a[i]=a[k]; a[k]=x;}
       }
        printf("The sorted numbers:\n");
        for(i=1;i<11;i++)
    	printf("%d ",a[i]);
    }
    

    二维数组及多维数组

    二维数组的定义

    定义方式: 
    在这里插入图片描述
    在这里插入图片描述
    数组元素的存放顺序
    1、原因: 内存是一维的
    2、二维数组: 按行序优先
    3、多维数组: 最右下标变化最快

    在这里插入图片描述
    数组a[m][n],m行n列,共m*n个元素
    在这里插入图片描述

    这些元素占用m*n个单元,每个单元的大小取决于
    元素的类型。

    任意元素a[i][j]在数组中的位置计算公式为:

    i×n+j (从0开始)

    a——数组的起始地址;a[0]——0行0列元素的地址。

    二维数组元素的引用

    形式: 数组名[下标][下标]

    二维数组元素的初始化

    1、分行初始化
    2、按元素排列顺序初始化

    程序举例

    例1:将二维数组行列元素互换,存到另一个数组中
    在这里插入图片描述

    /*示例1*/
    #include <stdio.h>
    main()
    {   int a[2][3]={{1,2,3},{4,5,6}};
         int b[3][2],i,j;
        printf("array a:\n");
        for(i=0;i<=1;i++)
        {   for(j=0;j<=2;j++)
    	{   printf("%5d",a[i][j]);
    	    b[j][i]=a[i][j];
    	}
    	printf("\n");
        }    
        printf("array b:\n");
        for(i=0;i<=2;i++)
        {   for(j=0;j<=1;j++)
    	   printf("%5d",b[i][j]);
             printf("\n");
        }
    }
    

    例2:求二维数组中最大元素值及其行列号
    在这里插入图片描述

    /*示例2*/
    #include <stdio.h>
    main()
    {  int a[3][4]={{1,2,3,4},
                            {9,8,7,6},
                            {-10,10,-5,2}};
        int i,j,row=0,colum=0,max;
        max=a[0][0];
        for(i=0;i<=2;i++)
           for(j=0;j<=3;j++)
               if(a[i][j]>max)
    	  {  max=a[i][j];
    	     row=i;
    	     colum=j;
    	  }
        printf("max=%d,row=%d,\colum=%d\n",max,row,colum);
    }
    

    例3:分别求n阶方阵两条对角线上的元素之和

    /*示例3*/
    #define N 3
    main()
    {   int i,j,a[N][N];
    int sum1=0,sum2=0;
    for(i=0;i<N;i++)
      for(j=0;j<N;j++)
        scanf(%d”,&a[i][j]);
    for(i=0;i<N;i++)
      for(j=0;j<N;j++)
        if(i==j) sum1+=a[i][j];
    for(i=0;i<N;i++)
      for(j=N-1;j>=0;j--)
        if((i+j)==N-1) sum2+=a[i][j];
    printf(“sum1=%d,sum2=%d\n”,sum1,sum2);
    }
    

    字符数组和字符串

    字符数组

    定义 : 每个元素存一个字符,主要用来对字符串操作。
    字符数组的初始化:

    1、逐个字符赋值
    2、用字符串常量

    字符数组的引用:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    字符串

    字符串及其结束标志

    (1)、无字符串变量,用字符数组处理字符串。
    (2)、字符串结束标志:‘\0’。

    在这里插入图片描述
    字符串的输入输出
    输入:

    • 用scanf函数
      (1).输入单个字符:%c 需用循环语句
      (2).输入字符串:%s scanf(“%s”,str);
    • 用gets函数:gets(str);

    输出:

    • 用printf函数
      (1).输出单个字符:%c 需用循环语句
      (2).输出字符串:%s printf(“%s”,str);
    • 用puts函数:puts(str);

    在这里插入图片描述

    常用的字符串处理函数: 加粗样式包含在头文件 string.h

    字符串输出函数puts

    格式: puts(字符数组)
    功能: 向显示器输出字符串(输出完,换行)
    说明: 字符数组必须以‘\0’结束

    字符串输入函数gets

    格式: gets(字符数组)
    功能: 从键盘输入一以回车结束的字符串放入字符数组中,并自动加‘\0’
    说明: 输入串长度应小于字符数组维数

    字符串连接函数strcat

    格式: strcat(字符数组1,字符数组2)
    功能: 把字符数组2连到字符数组1后面
    返值: 返回字符数组1的首地址
    说明:
    1、字符数组1必须足够大
    2、连接前,两串均以‘\0’结束;连接后,串1的‘\0’取消, 新串最后加‘\0’

    字符串拷贝函数strcpy

    格式: strcpy(字符数组1,字符串2)
    功能: 将字符串2,拷贝到字符数组1中去
    返值: 返回字符数组1的首地址
    说明:
    1、字符数组1必须足够大
    2、拷贝时‘\0’一同拷贝
    3、不能使用赋值语句为一个字符数组赋值
    在这里插入图片描述

    字符串比较函数strcmp

    格式: strcmp(字符串1,字符串2)
    功能: 比较两个字符串
    比较规则: 对两串从左向右逐个字符比较(ASCII码),直到遇到不同字符或‘\0’为止
    返值: 返回int型整数,
    a. 若字符串1< 字符串2, 返回负整数
    b. 若字符串1> 字符串2, 返回正整数
    c. 若字符串1== 字符串2, 返回零
    说明: 字符串比较不能用“==”,必须用strcmp

    字符串比较函数strcmp

    字符串长度函数strlen
    格式:strlen(字符数组)
    功能:计算字符串长度
    返值:返回字符串实际长度,不包括‘\0’在内
    在这里插入图片描述

    展开全文
  • 二维数组二维数组

    千次阅读 2018-06-26 05:50:40
    那么二维数组在内存中又是怎么存储的,其数组名又有什么含义呢?   定义一个二维数组: int arr   [3] [4] = {{1,1,1,1},{2,2,2,2},{3,3,3,3},{4,4,4,4}};   我们可以将一个二维数组看做是一个其中元素...

    二维数组和二维数组名

      对于一位数组我们认识到其数据元素在内存中是按线性顺序依次排列的,且一维数组名的值是一个指针常量。那么二维数组在内存中又是怎么存储的,其数组名又有什么含义呢?
      定义一个二维数组:

    int Arr   [3] [4] = {{1,1,1,1},{2,2,2,2},{3,3,3,3},{4,4,4,4}};

      我们可以将一个二维数组看做是一个其中元素为数组的一个一位数组,也就是说二维数组第一维的元素实际上是另一个数组。所以数组名arr是一个指向一个包含有4个整形元素的数组的指针,即数组指针常量;
    这里写图片描述
    这里写图片描述
      在了解到二维数组的数组名是数组指针常量后可对以下代码作出分析:

    int main()
    {
        int a[3][4] = {0};
        printf("sizeof(a) = %d\n",sizeof(a));
        //当a单独出现在sizeof()中时表示整个数组,内存占用量为48byte;
        printf("sizeof(a[0][0]) = %d\n",sizeof(a[0][0]));
        //a[0][0]表示二维数组的第一个元素,内存占用量为4byte;
        printf("sizeof(a[0]) = %d\n",sizeof(a[0]));
        //a[0]相当于二维数组中第一维数组的数组名,即第一行的所有内容,占16byte;
        printf("sizeof(a[0]+1) = %d\n",sizeof(a[0]+1));
        //表示第二行的所有内容,内存占用量为4byte;
        printf("sizeof(a+1) = %d\n",sizeof(a+1));
        //数组名并非单独出现在sizeof()中,故表达式表示数组指针常量+1,占4byte;
        printf("sizeof(*a) = %d\n",sizeof(*a));
        //a表示数组指针常量,对其解引用结果为第一行的所有内容,占16byte;
        printf("sizeof(a[3]) = %d\n",sizeof(a[3]));
        //sizeof()内部的表达式并不进行计算,所以此时的3无效,表示的二维数组一行的内容。
        return 0;
    
    }

      注意!!!:由于二维数组是由一维数组组成的,所以在对二维数组进行初始化时花括号内嵌套的必须是花括号!若是在花括号内用圆括号“( )”进行初始化,且其中含有逗号,编译器会将其按照逗号表达式进行处理。

    展开全文
  • C++输入二维数组

    千次阅读 2019-08-29 21:35:47
    C++输入二维数组 int n, m; while (cin >> n >> m) { vector<vector<int>> data(n, vector<int>(m)); int sum = 0; for (int i = 0; i < n; i++) for (int j = 0;...
  • 二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列。下面简单了解一下二维数组,包括数组的声明和初始化。 创建二维数组 在 Java 中二维数组被看作...
  • 二维数组二维数组求和 1.二维数组的定义格式 int [][] nums =new int[3][4];//定义了一个长度为3,即三个一维数组,这三个一维数组的长度都为4 int[][]nums = new int[3][];//这种定义方法只定义了二维数组的...
  • Python输入二维数组

    千次阅读 2017-02-21 15:16:50
    前不久对于Python输入二维数组有些不解,今日成功尝试,记以备忘。这里以输入1-9,3*3矩阵为例n=int(input()) line=[[0]*n]*n for i in range(n): line[i]=input().split(' ') print(line)使用数据转换为int即可
  • 二维数组既可以通过二维访问也可以通过一维访问。 对于二维数组的传值,引进了数组指针。 #include void foo(int *p,int n)//一维访问 { for(int i=0;i;i++) printf("%d ",p[i]); printf("\n"); } //因为...
  • 二维数组是一页纸 三维数组是一本书 四维数组是书架 五维数组是图书室2201(好几个书架) 六维数组是图书馆某一层,2楼/3楼,好几个图书室 七维数组是整个图书馆 第N维数组是宇宙...................
  • 静态二维数组和动态二维数组(C语言)

    千次阅读 多人点赞 2017-04-09 12:31:34
    1、理解什么是静态二维数组和动态二维数组 静态二维数组:可以理解为程序中如下定义的数组(定义一个3行4列的静态二维数组) int [3][4] = {{1,1,1,1}, {2,2,2,2}, {4,4,4,4}}; 动态二维数组:可以理解为程序中...
  • 二维数组和嵌套数组的区别 [][]二维数组:数组可以不等长 [,]嵌套数组:数组必须等长 一维数组->二维数组[][] int[] a = { 1, 2, 3 }; int[] b = { 11, 22, 33,44}; int[][] ab = { a, b }; (参考链接:...
  • 因项目需要,要把两个一维的数组一一对应地转化为二维的,之后,在对合成的二维数组进行排序,从而实现一一对应的排序 合并函数: //合并一维数组为二维数组 function array_hebing(arr1,arr2){ var result = ...
  • c语言将二维数组当做一维数组传入函数,并能输出原二维数组的各元素,怎样理解?
  • 二维数组的嵌套并非三维数组 2 数组的嵌套写法 1维数组的嵌套:arr(m)(i) 2维数组的嵌套:arr(m)(i,j) Sub test1001() Debug.Print "测试一维数组和其嵌套" '一维数组 arr1 = Array(1, 3, 5, 7, 9) arr2 = ...
  • 二维数组

    千次阅读 2019-02-18 16:53:47
    二维数组二维数组的声明方式二维数组的循环 二维数组的声明方式 二维数组的循环
  • C++ 动态申请二维数组二维数组传参

    千次阅读 多人点赞 2018-12-15 11:59:41
    但是如何动态分配一个二维数组呢?像这样: int **pa = new int[3][3] ?测试一次 => 显然这种分配方式是不正确的: 在尝试新的方法之前,我们需要首先了解二维数组在内存中的存储结构: ...
  • java二维数组字符数组Today we will look into Two-dimensional array in java. An array is like a container that can hold a certain number of values. 今天,我们将研究Java中的二维数组。 数组就像可以容纳...
  • C++二维数组 | 二维数组输出0-6

    千次阅读 2020-12-01 09:44:12
    C++二维数组 C++的二维数组是指具有两个下标的数组,有些数据要依赖于两个因素才能惟一地确定,因此才会引入二维数组。 C++二维数组的定义 C++中定义二维数组的一般格式: 类型标识符 数组名[常量表达式] [常量...
  • 输入一维数组 一维数组输入第一种 一维数组输入第二种 输入二维数组
  • 二维数组及遍历

    万次阅读 多人点赞 2019-09-12 17:41:23
    二维数组及遍历 概念 初始化方式详解 遍历 我在前面的博文详细说过一维数组的概念初始化方式及遍历,今天这篇博文,可以看过前面博文的会很容易接受,前置博文,请直接点击链接跳转。 什么是二维数组二维数组和...
  • 关于用指针方式访问二维数组的问题 首先说明几种类型: int a[2][4] = { 1,2,3,4,5,6,7,8 };//二维数组 int **p; //二重指针跨度为sizeof(int *) int(*q)[4]; //该语句是定义一个指向数组的指针,指向含4个...
  • 一维数组输入 void push1() { vector<int> vector1; int inputnum; while (cin >...二维数组输入 void push2() { int r = 0, c = 0; cin >> r; //输入二维数组的行数 cin >>
  • 二维数组转为一维数组

    千次阅读 2016-11-12 11:28:21
    二维数组转一维数组
  • 接下来到二维数组int[3][4]:首先,由二维数组的第二维[4]我们可以确定一排是4个苹果,这个跟刚才的一维数组一样。 那么之前的[3]是什么呢?于是int[3][4]相当于在你面前放了3排的苹果,一排4个。 再到三维数组int...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 460,661
精华内容 184,264
关键字:

怎样输入二维数组