[c语言]二维数组作为函数的参数是怎样的?

一、合法写法

  • int arr[]2[3];
  • int arr[][3];

这是为什么?
因为在第二维大小相同的情况下,形参数组的第一维可以与实参数组不同。这时形参数组和实参数组都是由相同类型和大小的一维数组组成的。

二、不合法写法

  • int arr[2][];
  • int arr[][];

这是为什么?
因为二维数组是由若干个一维数组组成的,在内存中,数组是按行存放的,因此,在定义二维数组时,必须指定列数(即一行中包含几个元素),由于行参数组与实参数组类型相同,所以它们是由具有相同长度的一维数组所组成的。不能只指定第一维(行数)而省略第二维(列数)。

三、写一个练习题

要求:有3x4矩阵,初始化它并输出,然后求出最大值和最小值

#include<stdio.h>
int i,j;        /*定义全局变量*/

/*初始化数组函数*/
void init_shuzu(int a[][3])
{

        for(i=0;i<2;i++)
        {
                for(j=0;j<3;j++)
                {
                        printf("a[%d][%d]=",i,j);
                        scanf("%d",&a[i][j]);
                }
        }	
}

/*输出数组函数*/
void Printf_shuzu(int a[][3])
{
	   for(i=0;i<2;i++)
        {
                for(j=0;j<3;j++)
                {
                        printf("a[%d][%d]=%d\t",i,j,a[i][j]);
                }
		putchar('\n');
        }
}

/*输出数组最大值函数*/
void Find_Max_data(int a[][3])
{
	int Max = a[0][0];
	int l = 0;
        int h = 0;
        for(i=0;i<2;i++)
        {
                for(j=0;j<3;j++)
                {
                        if(Max<a[i][j])
                        {
                                Max = a[i][j];
                                l = i;
                                h = j;
                        }
                }
        }

	printf("最大值是a[%d][%d] = %d\n",l,h,Max);
	
}

/*输出数组最小值函数*/
void Find_Min_data(int a[][3])
{
        int Min = a[0][0];
        int l = 0;
        int h = 0;
        for(i=0;i<2;i++)
        {
                for(j=0;j<3;j++)
                {
                        if(Min>a[i][j])
                        {
                                Min = a[i][j];
                                l = i;
                                h = j;
                        }
                }
        }


        printf("最小值是a[%d][%d] = %d\n",l,h,Min);

}

int main()
{

    int arr[2][3];         
        
	init_shuzu(arr);
	
	printf("打印数组:\n");
	Printf_shuzu(arr);

	Find_Max_data(arr);
	Find_Min_data(arr);

        return 0;
}

输出结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/a550f037512b4936b0d71ddcf83293f1.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56eD56eD56eD56eD5ZOH,size_18,color_FFFFFF,t_70,g_se,x_16

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秃秃秃秃哇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值