精华内容
下载资源
问答
  • 如何获取二维数组列数

    千次阅读 2018-01-23 10:25:27
    二维数组的行数可以使用Length属性获得,但由于C#中支持不规则数组,因此二维数组中每一行中的列数可能不会相同,如何获取二维数组中每一维的列数呢?答案还是Length属性,因为二维数组的每一维都可以看做一个一维...

    二维数组的行数可以使用Length属性获得,但由于C#中支持不规则数组,因此二维数组中每一行中的列数可能不会相同,如何获取二维数组中每一维的列数呢?答案还是Length属性,因为二维数组的每一维都可以看做一个一维数组,而一维数组的长度是可以使用Length属性获得。例如,下面代码定义一个不规则二维数组,并通过遍历其行数、列数,输出二维数组中的内容,代码如下:

    01  staticvoid Main(string[] args)
    
    02  {
    
    03  int[][] arr = newint[3][];// 创建二维数组,指定行数,不指定列数
    
    04  arr[0] = newint[5];// 第一行分配5个元素
    
    05  arr[1] = newint[3];// 第二行分配3个元素
    
    06  arr[2] = newint[4];// 第三行分配4个元素
    
    07  for(int i=0;i<arr.Length;i++)//遍历行数
    
    08      {
    
    09  for(int j = 0; j <arr[i].Length; j++)//遍历列数
    
    10          {
    
    11  Console.Write(arr[i][j]);//输出遍历到的元素
    
    12          }
    
    13  Console.WriteLine();//换行输出
    
    14      }
    
    15  Console.ReadLine();
    
    16  }
    

    感谢读者朋友对明日科技的支持,如果您对图书中的讲解及光盘源码有任何问题,可以直接登录http://www.mingrisoft.com上的社区进行发贴,把您的问题详细的说明一下,我们的技术人员会在那里给您回复!

    本文来自明日科技出版的《零基础学C#,转载请注明出处!!!


    展开全文
  • 1、二维数组——列数相同 public class Dasanyuan { public static void main(String[] args){ /** * 1.操作二维数组列数相同) */ int sum =0,sum1 = 0; int chinese = 0; int math = 0; //...

    1、二维数组——列数相同

    public class Dasanyuan {
    	public static void main(String[] args){
    		/**
    		 * 1.操作二维数组(列数相同)
    		 */
    		 int sum =0,sum1 = 0;
    		 int chinese = 0;
    		 int math = 0;
    	       //定义一个三行两列的整型二维数组intArray
    	        int[][] intArray = new int[3][2];
    	        Scanner input = new Scanner(System.in);
    	       //从键盘输入学生成绩,要求输入顺序与效果图一致
    	       for(int i=0;i<intArray.length;i++){
    	        System.out.println("请输入第"+(i+1)+"个学生的语文成绩");
    	        intArray[i][0] = input.nextInt();
    	        chinese = intArray[i][0];
    	        sum = sum+chinese;//求语文的总成绩
    	        System.out.println("请输入第"+(i+1)+"个学生的数学成绩");
    	        intArray[i][1] = input.nextInt();
    	        math = intArray[i][1];
    	        sum1 = sum1+math;//求数学的总成绩
    	       }
    	       //平均分
    	       double price = sum/3;
    	        System.out.println("语文的总成绩为:"+sum);
    	        System.out.println("语文的平均分为:"+price);
    	       //平均分
    	       double price1 = sum1/3;
    	        System.out.println("数学的总成绩为:"+sum1);
    	        System.out.println("数学的平均分为:"+price1);
    	}
    }


    2、二维数组——列数不同

    public class Dasanyuan {
    	public void No1(){
    		/**
    		 * 2.操作二维数组(列数不同)
    		 */
    		//定义一个4行的数组,列数待定
    		int[][] intArray1 = new int[4][];
    //		int k = 0;//控制do..while
    		Scanner input = new Scanner(System.in);
    	    int[] num1 = new int[2]; //存放二位数组中第一行的数组元素
    	    int[] num2 = new int[3]; //存放二位数组中第二行的数组元素
    	    int[] num3 = new int[4]; //存放二位数组中第三行的数组元素
    	    int[] num4 = new int[1]; //存放二位数组中第四行的数组元素
    	    int numb1; //接收从键盘输入的数字
    		
    		//创建列数(每行相当于一个一维数组,需要创建)
    		intArray1[0] = new int[2]; //第一行有二列
    		intArray1[1] = new int[3]; //第二行有三列
    		intArray1[2] = new int[4]; //第三行有四列
    		intArray1[3] = new int[1]; //第四行有一列
    		//do{
    //输入第一行的数组元素
    		System.out.println("第一行的数组元素为:");
    		for(int i=0;i<intArray1[0].length;i++){		
    			System.out.print("请输入第一行第"+(i+1)+"列的元素:");		
    			numb1 = input.nextInt(); 
    			num1[i] = numb1; //将numb1的值赋给num1[i](相当于往num1数组中添加元素)					
    		}
    		//打印二维数组中第一行的元素
    		System.out.print("intArray1二维数组中第一行的元素有:");
    			for(int j=0;j<num1.length;j++){
    			intArray1[0][j] = num1[j];
    			System.out.print(intArray1[0][j]+" ");
    			}
    //输入第二行的数组元素
    				System.out.println("\n"+"第二行的数组元素为:");
    				for(int i=0;i<intArray1[1].length;i++){
    					System.out.print("请输入第二行第"+(i+1)+"列的元素:");
    					numb1 = input.nextInt(); 
    					num2[i] = numb1; //将numb1的值赋给num2[i](相当于往num2数组中添加元素)
    				}
    				//打印二维数组中第二行的元素
    				System.out.print("intArray1二维数组中第二行的元素有:");
    				for(int j=0;j<num2.length;j++){
    					intArray1[1][j] = num2[j];
    					System.out.print(intArray1[1][j]+" ");
    				}			
    //输入第三行的数组元素
    				System.out.println("\n"+"第三行的数组元素为:");
    				for(int i=0;i<intArray1[2].length;i++){
    					System.out.print("请输入第三行第"+(i+1)+"列的元素:");
    					numb1 = input.nextInt(); 
    					num3[i] = numb1; //将numb1的值赋给num3[i](相当于往num3数组中添加元素)
    				}
    				//打印二维数组中第三行的元素
    				System.out.print("intArray1二维数组中第三行的元素有:");
    				for(int j=0;j<num3.length;j++){
    					intArray1[2][j] = num3[j];
    					System.out.print(intArray1[2][j]+" ");
    				}
    //输入第四行的数组元素
    				System.out.println("\n"+"第四行的数组元素为:");
    				for(int i=0;i<intArray1[3].length;i++){
    					System.out.print("请输入第四行第"+(i+1)+"列的元素:");
    					numb1 = input.nextInt(); 
    					num4[i] = numb1; //将numb1的值赋给num4[i](相当于往num4数组中添加元素)
    				}
    				//打印二维数组中第四行的元素
    				System.out.print("intArray1二维数组中第四行的元素有:");
    				for(int j=0;j<num4.length;j++){
    					intArray1[3][j] = num4[j];
    					System.out.print(intArray1[3][j]+" ");
    				}
    				System.out.println("\n");
    				/*
    				 * 使用输出二维数组
    				 */
    				System.out.println("****二维数组intArray1中有以下元素:****");
    				for(int y=0;y<intArray1.length;y++){
    					for(int t=0;t<intArray1[y].length;t++){
    				System.out.print(intArray1[y][t]+" ");
    				}
    					System.out.println();
    				}
    }
    	public static void main(String[] args){
    /*
    		 * 创建类的对象
    		 */
    		Dasanyuan da = new Dasanyuan();
    		da.No1();
    	}
    }
    


    展开全文
  • 请编一个函数: void fun(int tt[M][N],int pp[N]),tt指向一个M行N二维数组,求出二维数组中最小元素,并依次放入pp所指一维数组中。二维数组中的已在主函数中赋予。 #include<conio.h> #include&...

    请编一个函数: void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入p,p所指一维数组中。二维数组中的数已在主函数中赋予。

    #include<conio.h>
    #include<stdio.h>
    #define M 3
    #define N 4
      
    void fun(int tt[M][N],int pp[N])
    {
      /**********Begin**********/
      
      int i,j;
     for(j=0;j<N;j++)
        {     pp[j]=tt[0][j];
         for(i=1;i<M;i++)
         if(tt[i][j]<pp[j])
           pp[j]=tt[i][j];}
         /**********  End  **********/
    void main()
    {
      int t[M][N]={{22,45,56,30},
      {19,33,45,38},
      {20,22,66,40}};
      int p[N],i,j,k;
      printf("The original data is:\n");
      for(i=0;i<M;i++)
      {
        for(j=0;j<N;j++)
          printf("%6d",t[i][j]);
        printf("\n");
      }
      fun(t,p);
      printf("\nThe result is:\n");
      for(k=0;k<N;k++) printf("%4d",p[k]);
      printf("\n");
      NONO();
    }
    
    
    展开全文
  • C++ 动态二维数组(二维vector)

    千次阅读 2020-05-11 13:55:39
    在完成一项任务时可能会需要用到动态二维数组,在C++中,可以使用二维vector创建二维数组。对二维数组的使用,其操作可分为增删查改。其中修改操作可以通过简单赋值操作完成,之后便不再赘述。 创建二维数组: ...

    创建二维数组:

    vector<int> vec(4,2); //将含有4个数据的一维动态数组初始为2
    vector< vector<int> > asd1(row, vector<int>(column, 0)); //初始化row*column二维动态数组,初始化值为0

     

    获取数组长度:

    对于一维数组,可以使用size()获取其长度。
    int size = asd.size();
    
    对于二维数组,可以使用以下方法获取行、列的长度。
    int size_row = asd1.size();          //获取行数
    int size_column = asd1[0].size();    //获取列数

     

    赋值

    直接赋值即可
    asd1[1][1] = 1;
    cout << asd1[1][1] <<endl;

     

    增加操作

    根据需求,增加操作可分为增加行和增加列。增加行列元素,可以使用vector提供的方法push_back()或insert()。对于增行,可以使用asd1.push_back(asd);,其中asd是vector<int>。对于增加列中的元素,需要指定插入的行,可以使用asd1[0].push_back(23);完成插入操作。使用insert()时,需要使用迭代器才能完成在相应位置的插入操作。

    asd1[1].push_back(23);   //插入列元素
    asd1.push_back(asd);     //插入一行

     

    删除操作

    删除同样分为删除行和删除列,使用vector中的erase方法完成该操作,erase去除迭代器所指位置的元素。删除行时,需要使用到第一维度的vector的迭代器:

    auto test1 = asd1.begin();
    asd1.erase(++test1);

    删除列元素时,需要使用第二维度的迭代器:

    auto test2 = test1.begin();
    asd1[0].erase(++test2);

     

    查改、遍历操作

    operation[ ]用于访问指定的元素返回对指定位置的元素的引用pos。如果只是简单的获取数据或查看数据使用a[row][column]即可。

    遍历是一个常用的操作,通过遍历可以了解数组中是否存在相应的元素。遍历二维vector中所有的元素方法如下:

    void Print(vector<vector<int>> a)
    {
    	vector<vector<int> >::iterator p1;
    	vector<int>::iterator p2;
    	for (p1 = a.begin(); p1 != a.end(); p1++)
    	{
    		for (p2 = p1->begin(); p2 != p1->end(); p2++)
    		{
    			cout << "[" << *p2 << "]";
    		}
    		cout <<endl;
    	}
    	cout <<endl;
    }

     

    完整代码:

    #include <iostream>
    #include <array>
    #include <vector>
    #include <cstring>
    
    using namespace std;
    
    void Print(vector<vector<int>> a)
    {
    	vector<vector<int> >::iterator p1;
    	vector<int>::iterator p2;
    	for (p1 = a.begin(); p1 != a.end(); p1++)
    	{
    		for (p2 = p1->begin(); p2 != p1->end(); p2++)
    		{
    			cout << "[" << *p2 << "]";
    		}
    		cout <<endl;
    	}
    	cout <<endl;
    }
    
    int main()
    {
    	int i = 0;
    	vector <int> asd(4,2); //将含有4个数据的一维动态数组初始为2
    	vector<std::vector<int> > asd1(4,vector<int>(4,0)); //初始化row*column二维动态数组,初始化值为0
    
    	vector<std::vector<int> >::iterator p1;
    	vector <int>::iterator p2;
    
    
    	//简单初始化
    	for (p1 = asd1.begin(); p1 != asd1.end(); p1++)
    	{
    		for (p2 = p1->begin(); p2 != p1->end(); p2++)
    		{
    			*p2 = i++;
    		}
    	}
    
    	cout << "Init:" <<endl;
    	Print(asd1);
    
    	//插入列元素用push_back
    	asd1[1].push_back(23);
    	asd1.push_back(asd);
    	
    	/*
    	//设置行列数
    	int size_row = asd1.size();             //获取行数
    	cout << "size_row:" << size_row <<endl;
    	asd1.resize(10);                        //设置行数
    	size_row = asd1.size();                 //获取行数
    	cout << "size_row:" << size_row <<endl;
    
    	int size_col = asd1[0].size();
    	cout << "size_col:" << size_col <<endl;
    	asd1[1].resize(10);                     //设置列数
    	size_col = asd1[1].size();
    	cout << "size_col:" << size_col <<endl;
    	*/
    	
    	cout << "Push_back:" <<endl;
    	Print(asd1);
    
    	cout << "Erase:" <<endl;
    	auto test1 = asd1.begin();
    	test1 = test1 + 3;
    	asd1.erase(test1);
    	Print(asd1);
    
    	return 0;
    }

    展开全文
  • //此程序是我自己编的,但是不能通过,请问这是怎么回事? #include using namespace std; int main() { int n,m,k,i,j,l; cin>>n>>m>>k;... cout数组中的元素为:"[l]; //system("pause"); return 0; }
  • 博客的内容分为两个部分,第一部分解释了函数调用常规二维数组的格式,主要参照的是《C++ Prime Plus》中的7.4节。第二部分解释了动态二维数组的初始化方法,以及函数调用动态二维数组的格式。
  • c++ 创建动态二维数组

    千次阅读 2017-02-21 17:12:31
    最近碰到一个c++创建动态二维数组的问题。上网查了查资料,现在吧有关内容做一个小结。 关于二维数组,有几个容易混淆的概念。int ** arr0; int *arr1[]; int (*arr2)[]; int arr3[][];int *arr0 是一个二级指针,...
  • NDK/JNI二维数组多维数组传递

    千次阅读 2017-06-29 16:35:56
    1.NDK/JNI二维数组多维数组传递 一、java 层   二、jni层 Java_cn_baipess_native( JNIEnv* env,jobject thiz,jobjectArray qizidata)    {  jint i,j;    int ...
  • C语言总结第七章、数组一维数组一维数组的定义一维数组的引用一维数组的初始化程序举例二维数组及多维数组二维数组的定义二维数组元素的引用二维数组元素的初始化程序举例字符数组和字符串字符数组 第七章、数组 ...
  • 二维数组既可以通过二维访问也可以通过一维访问。 对于二维数组的传值,引进了数组指针。 #include ...void foo(int *p,int n)//一维访问 ...//因为二维数组列数必须初始化 void func(int (*p)
  • 这时,就需要将每个像素点对应的值存入二维数组,然后将二维数组中的数据存入一维数组,最后做排序处理。  下列程序中:首先创建一个4*4的图像,定义和图像尺寸大小一样二维数组,然后给每个像素点赋值,接着将...
  • java基础之二维数组不定义列数

    千次阅读 2017-08-01 20:10:17
    有一种特殊的二维数组,它的行数确定,但是每行的列数不确定。这样的的数组实现方法:先创建制定行数,列数缺省的二维数组,然后对数组的每一行重新初始化。举例如下: package day5; //第二种定义二维数组的...
  • C语言动态二维数组实现矩阵的相乘

    万次阅读 2016-12-21 13:41:42
    c语言动态二维数组实现矩阵相乘 如何申请动态二维数组,代码如下 该方法是最灵活的,可以任意指定行数和列数 /* *申请a数组的内存* */ /*先申请每一行指针的内存*/ a = (int **)malloc(sizeof(int *)*a_row)...
  • 【Java】获取二维数组最小的值

    千次阅读 2019-06-20 22:49:15
    从键盘中输入二维数组输出每列最小的值。 分析: 思路:遍历列,再遍历列中行 分好列数 定义一个一位数组,用于输出得到的列的最小值 分列进行比较,循环查找,得到的数保存到以为数组中。 代码实现: import...
  • 习题6.14 以m行n列二维数组为参数进行方法调用,分别计算二维数组元素之和,返回并输出所计算的结果。 代码块: package App; import java.util.*; class Array { int m, n; Scanner reader=new Scanner...
  • 二维数组排序

    千次阅读 2015-07-05 22:00:11
    给出一个二维数组,请将这个二维数组按第i(i从1开始)排序,如果第i相同,则对相同的行按第i+1的元素排序,如果第i+1的元素也相同,则继续比较第i+2,以此类推,直到最后一。如果第i到最后一都相同,...
  • C语言如何求二维数组行数和列数

    千次阅读 2019-08-14 11:49:40
    比如有这样一个二维数组: int a[3][5]; 求数组元素的总数: sizeof(a) / sizeof(int) 求数组列数: sizeof(a[0])/sizeof(int) 而数组行数则为 :( sizeof(a) / sizeof(int) )/ ( sizeof(a[0]) / sizeof(int) ) ...
  • #include <stdio.h> #define M 3 #define N 3 main() { void fun(int tt[M][N],int pp[N]); int i,j,k,p[N]; int b[M][N]={1,11,3,4,5,23,17,8,9}; for(i=0;i<M;i++) { for(j=0;...print...
  • 二维数组交换

    千次阅读 2017-04-12 20:30:32
    j++)//第层循环:交换第二列和第三对应的元素 { for (int i = 0;i ;i++)//第一层循环:交换每一行的第一个元素和最后一个元素 { //int temp1 = a[i][j]; //int temp2 = a[i][cols - j-1]; //...
  • C语言定义动态二维数组1 为不能直接定义int [n][n]2 动态定义二维数组的方法 1 为不能直接定义int [n][n] C语言里,所有变量空间都是在程序运行之初向系zd统申请的, 包括指针,除了一些动态申请方式如malloc函数。 ...
  • 例题:请编一个函数void fun(int a[M][N],int b[N]),c指向一个M行N二维数组,求出二维数组中最大元素,并依次放入b所指一维数组中。二维数组中的己在主函数中赋予。 请勿改动主函数main与其它函数中的...
  • c#二维数组传递与拷贝

    千次阅读 2014-11-13 22:06:19
    传递       copy string[,] a = new string[1, 2];//原数组 a[0, 0] = "a"; a[0, 1] = "b";...//新建一个二维数组,并把a拷贝给它 string[,] c = new string[1,2];// 另外一个二维数组 Array.C
  • C++ 如何定义动态二维数组?

    千次阅读 2016-03-07 15:40:18
    今天遇到了一个简单的问题,怎么建立动态二维数组,如何函数传递二维数组; 需要先申请一个M个元素的一维指针空间,然后对每个一维指针上,申请N个元素的对象空间。这样就可以申请一个M行N二维数组空间了。以...
  • C# 二维数组的行数和列数

    千次阅读 2019-07-10 14:12:25
    定义一个数组: int[,] arr = new int[7, 10]; Length求出的是数组的总长度 ...求二维数组的行数用GetLength(),参数为0或者1,0表示求行数,1表示求列数 Console.WriteLine(arr.GetLength(0)); //求行数 Co...
  • 二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的。下面简单了解一下二维数组,包括数组的声明和初始化。 创建二维数组 在 Java 中二维数组被看作...
  • 确定二维数组的行数和列数

    千次阅读 2018-05-06 09:17:42
    在方法的参数类型为二维数组类型int[][] array,如何在方法中确定数组array的函数和列数。 实验代码 public class Main { public static void main(String[] args){ int[][] array = new int[4][3]; System....
  • C语言批量数据到动态二维数组

    千次阅读 2015-07-22 17:31:44
    但是结合网络上感觉到今天的DT时代,这样批量大量读取一个上百行的数据,分配的内存是否可能因为大量的数据而产生溢出呢,最近一直研究里malloc函数,通过它来动态建立所需的二维数组,因此,通过文件操作和动态创建...
  • 这里介绍动态创建二维数组: 1、定义一个二维指针~; 2、然后申请一维地址空间,再为每一个一维指针申请一行数据空间,并赋值给二维指针; 3、输入数据; 4、释放内存(先释放一维指针上的,再释放二维指针上的)...
  • 13.请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N二维数组,求出二维数组中最小元素,并依次放入pp所指一维数组中。二维数组中的已在主函数中赋予。 #include <stdio.h> #define...
  • 对于一个二维数组如: int a[2][5]; 求数组元素的总数: sizeof(a) / sizeof(int) 而数组行数则为 :( sizeof(a) / sizeof(int) )/ ( sizeof(a[0]) / sizeof(int) ) 求数组列数: sizeof(a[0])/sizeof(int) #...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 133,929
精华内容 53,571
关键字:

动态二维数组如何传递列数