第六章 - c语言中的数组-二维数组(下)

四、二维数组
  1. 二维数组的定义:

    (1) 数据类型  数组名[行数][列数];
        int a[3][2]; // 定义一个数组a,3行2列
    (2) 行和列都有各自的下标,行标为:行数-1 ; 列标为:列数-1
    (3) 二维数组的访问:数组名[行标][列标] , a[1][0]
    (4) 二维数组的遍历:
        int i,j; 
        for(i=0;i<行数;i++){
            for(j=0;j<列数;j++){
                // 通过 数组名[行标][列标]  访问数组元素
            }
        }
    
    #include<stdio.h>
    
    void main(){
    	int a[3][2];
    	a[0][0]=1;
    	a[0][1]=2;
    	a[1][0]=9;
    	a[1][1]=8;
    	a[2][1]=3;
    	int i;
    	int j;
    	for(i=0;i<3;i++){
    		for(j=0;j<2;j++){
    			printf("%d\t",a[i][j]);
    		}
    		printf("\n");
    	}
    } 
    
  2. 二维数组的初始化

    (1) 语法1:数据类型 数组名[行数][列数]= {{值1,值2},{值3,值4}};
        例如:int a[2][3] = {{3,5,6},{7,9,2}};
    (2) 语法2:数据类型 数组名[行数][列数] = {值1,值2,值3,值4,值5};
        例如:int a[2][3] = {2,5,7,9,3,8};
    (3) 对部分数组元素赋值案例:
        int a[][] = {1,2,3,0,0,0,4,5};
        int a[][] = {{1,2,3},{ }, {4,5}};
    
  3. 二维数组案例:杨辉三角形

    (1) 示例:
        1
        1 1
        1 2 1
        1 3 3 1
        1 4 6 4 1
    (2) 代码实现:
        #include<stdio.h>
        void main(){
        	int i = 0;
            int j = 0;
            int n = 0;
            scanf("%d", &n);
            int a[10][10] = { 0 };
            //存放元素
            for (i = 0; i < n; i++)
            {
                for (j = 0; j < n; j++)
                {
                    if (j == 0 || i == j)  //第一列和i==j时直接赋值为1
                    {
                        a[i][j] = 1; 
                    }
                    if (i >= 2 && j >= 1)
                    {
                        a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
                    }
                }
            }
            //打印
            for (i = 0; i < n; i++)
            {
                for (j = 0; j <=i; j++)
                {
                    printf("%d ", a[i][j]);
                }
                printf("\n");
            }
        } 
    
  • 11
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值