IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C:4.6-4.8 二维数组、初始化、找最大值及对应下标 -> 正文阅读

[C++知识库]C:4.6-4.8 二维数组、初始化、找最大值及对应下标

  • 二维数组基本知识点及初始化:
    #include <stdio.h>
    /*
      知识点:1.二维数组定义的一般形式为:类型说明符 数组名[常量表达式][常量表达式] 
                例:float a[3][4],b[5][10];定义a为3*4(3行4列)的数组,b为5行10列的数组
    		  2.可将其看为特殊的一维数组,例:可将元素a看为一维数组,有a[0],a[1],a[2]三个元素
    		    而元素a又是一个包含4个元素的一维数组,例:a[0]包含a[0][0] a[0][1] a[0][2] a[0][3]
    			a[1]包含a[1][0] a[1][1] a[1][2] a[1][3]   a[2]包含a[2][0] a[2][1] a[2][2] a[2][3]
    		  3.二维数组初始化:
    		    (1)可以只对各行第1列元素赋初值,其余元素自动为0,例:int a[3][4]={{1},{5},{9}}
    			   赋初值后各元素为:{{1,0,0,0},{5,0,0,0},{9,0,0,0}};
    			(2)可以对各行某一元素赋初值,例:int a[3][4]={{1},{0,5},{0,3,5}}
    			   赋初值后各元素为:{{1,0,0,0},{0,5,0,0},{0,3,5,0}};
    			(3)可以只对某几行元素赋初值,例:int a[3][4]={{1},{5,9}}
    			   赋初值后各元素为:{{1,0,0,0},{5,9,0,0},{0,0,0,0}};
    		  4.二维数组可以不写行,但是不写列不行(1维不写,2维写),不写行时输出按照列数自行分配
    */  
    int main()
    {
    	int i;
    	int j;
    	int array[2][3]={{000,111,222},{333,444,555}};  //000,111,222为第一行,333,444,555为第二行
    	int a[][4]={0,1,2,3,4,5,6,7,8,9};  //不写行可以,不写列不行
    
    //数组初始化三种方式:	
    	int array1[3][4]={{1},{5},{9}};  //只对各行第1列元素赋初值
    	int array2[3][4]={{1},{0,5},{0,3,5}};  //对各行某一元素赋初值
    	int array3[3][4]={{1},{5,9}};   //只对某几行元素赋初值
    	
    	for(i=0;i<2;i++)
    	{
    		for(j=0;j<3;j++)
    		{
    			printf("i=%d,j=%d,array=%d\n",i,j,array[i][j]);
    		}
    	}
    	printf("array=%d\n",array[1][1]); //第1行第1列实际为我们数到的第2组第2项,因为从0开始计算
    	puts("");
    	
    	puts("不写行输出为:");
    	for(i=0;i<3;i++)
    	{
    		for(j=0;j<4;j++)
    		{
    			printf("%d  ",a[i][j]);
    		}
    		puts("");
    	}
    	puts("");
    	
    	puts("初始化方式一输出为:");
    	for(i=0;i<3;i++)
    	{
    		for(j=0;j<4;j++)
    		{
    			printf("%d  ",array1[i][j]);
    		}
    		puts("");
    	}
    	
    	puts("初始化方式二输出为:");
    	for(i=0;i<3;i++)
    	{
    		for(j=0;j<4;j++)
    		{
    			printf("%d  ",array2[i][j]);
    		}
    		puts("");
    	}
    	
    	puts("初始化方式三输出为:");
    	for(i=0;i<3;i++)
    	{
    		for(j=0;j<4;j++)
    		{
    			printf("%d  ",array3[i][j]);
    		}
    		puts("");
    	}
    	
    	puts("\n输出结束");
    	return 0;
    }
    D:\C语言\第四章>gcc arrays.c
    
    D:\C语言\第四章>a.exe
    i=0,j=0,array=0
    i=0,j=1,array=111
    i=0,j=2,array=222
    i=1,j=0,array=333
    i=1,j=1,array=444
    i=1,j=2,array=555
    array=444
    
    不写行输出为:
    0  1  2  3
    4  5  6  7
    8  9  0  0
    
    初始化方式一输出为:
    1  0  0  0
    5  0  0  0
    9  0  0  0
    初始化方式二输出为:
    1  0  0  0
    0  5  0  0
    0  3  5  0
    初始化方式三输出为:
    1  0  0  0
    5  9  0  0
    0  0  0  0
    
    输出结束
  • 练习:找最大值及对应下标
    #include <stdio.h>
    
    //练习:有一个3*4的矩阵,求出最大值及对应所在的行号和列号
    int main()
    {
    	int i;
    	int j;
    	int array[3][4]={{47,1,68,93},{98,100,50,83},{19,4,82,57}};
    	int line;  //用来记录行
    	int list;  //用来记录列
    	int max;   //记录最大值
    	
    	max=array[0][0]; //先将数组第一个值赋初值给max,否则没有比较的数
    	
    	for(i=0;i<3;i++)
    	{
    		for(j=0;j<4;j++)
    		{
    			printf("%d\t",array[i][j]);  //\t为水平制表符,通常默认4个空格
    		}
    		puts("");
    	}
    	
    	for(i=0;i<3;i++)  //在编写时,a行b列就直接写为i<a,j<b,因为是从第0项开始计算
    	{
    		for(j=0;j<4;j++)
    		{
    			if(max<array[i][j])
    			{
    				max=array[i][j]; //它仅代表第i行第j列的那一个数,并不是数组坐标
    				line=i;
    				list=j;
    			}
    		}
    	}
    	printf("最大数为:%d,所在行为:%d,所在列为:%d\n",max,line+1,list+1);	
    	//i,j在程序里为从0开始,我们通常所说的第1行第1列为程序里的第0行第0列,因此输出+1
    	
    	puts("输出结束");
    	return 0;
    }
    D:\C语言\第四章>gcc ex5_arrays.c
    
    D:\C语言\第四章>a.exe
    47      1       68      93
    98      100     50      83
    19      4       82      57
    最大数为:100
    所在行为:2
    所在列为:2
    输出结束

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:02:42  更:2022-07-17 16:06:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:00:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码