前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >函数(四)(数组作为函数参数)

函数(四)(数组作为函数参数)

作者头像
pigeon
发布2022-04-11 17:57:27
1.5K0
发布2022-04-11 17:57:27
举报
文章被收录于专栏:电子荣耀
数组作为函数参数

数组作为函数参数在函数之间传递数据有两种情况:

一是数组元素作为函数参数,这种情况下与简单变量作为函数的参数完全一样,数组元素的值被单向传递给形参变量。

另一种情况是数组名作为函数的参数,此时作为实参的数组名将其存储的数组的首地址单向传递给作为形参的数组名。

例:编写程序,定义一个能够计算数组平均值的函数average。在main函数中输入一个班所有学生的考试成绩,调用average函数计算平均成绩并输出。

参考答案:

代码语言:javascript
复制
 #include <stdio.h>
   double average(double array[], int n); //函数声明
    int main()
    {
        double scores[]; //假设一个班最多40人
       double aver;
       int num, i;
        printf("输入班级人数: ");
       scanf("%d", &num);
       printf("输入%d个学生成绩: \n", num);
      for(i=; i<num; i++)
      {
          scanf("%lf", &scores[i]);
      }
       aver = average(scores, num);
      printf("班级平均分: %.2f\n", aver);
       return ;
  }

  double average(double array[], int n)
   {
      double sum = ;
       int i;
      for(i=; i<n; i++)
       {
           sum = sum + array[i];
       }
       return sum/n;
  }

结果示例:

多维数组名作为函数的参数

多维数组名作为函数的参数的一般形式如下

类型说明符 函数名(类型说明符 形参数组名[数组长度][数组长度])

代码语言:javascript
复制
 {
     ... ...
 }

形参的二维数组在定义时可以不指定数组第1维的长度,第2维的长度必须确定

例:编写函数max求整型二维数组中元素的最大值。

参考代码:

代码语言:javascript
复制
 #include <stdio.h>
   int max(int array[][], int row);      //函数声明
    void display(int array[][], int row); //函数声明
   int main()
   {
        int a[][] = {{1, 3, 5, 7}, {4, 66, 33, 18}, {6, 8, 9, 3}};
        int b[][] = {{11, 23, 55, 22}, {6, 8, 9, 3}};
        printf("数组a: \n");
        display(a, );                             //调用display输出数组a
      printf("数组a的最大值: %d\n", max(a, )); //求a的最大值并输出
       printf("数组b: \n");
       display(b, );                             //调用display输出数组a
       printf("数组b的最大值: %d\n", max(b, )); //求b的最大值并输出
       return ;
   }
  /*max求4列的二维数组array中元素最大值, row为行数*/
   int max(int array[][], int row)
   {
       int i, j, m;
       m = array[][];
       for(i=; i<row; i++)
       {
           for(j=; j<; j++)
           {
               if(array[i][j] > m) m=array[i][j];
           }
      }
       return m;
   }
 /*display输出4列的二维数组, row为行数*/
   void display(int array[][], int row)
   {
       int i, j;
       for(i=; i<row; i++)
       {
           for(j=; j<; j++)
           {
               printf("%4d", array[i][j]);
           }
           printf("\n");
       }
   }

结果示例:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 电子荣耀 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档