第10周 C语言及程序设计提高例程-36 多维数组作函数参数

原创 2016年06月01日 17:24:50

问题及代码:

/*用多维数组名作函数参数*/

#include <stdio.h>  
int max_value(int array[][4]);
int main()
{
   int a[3][4]={{11,32,45,67},{22,44,66,88},{15,72,43,37}};  
   printf("max value is %d\n",max_value(a));
   return 0;
}
int max_value(int array[][4])
{
   int i,j,max;
   max=array[0][0];
   for(i=0;i<3;i++)
     for(j=0;j<4;j++)
       if(array[i][j]>max)
           max=array[i][j];
    return max;
}
      

/*工程中更普遍的做法:行数作为形参*/

#include <stdio.h>  
int max_value(int array[][4],int);
int main()
{
  int a[3][4]={{11,32,45,67},{22,44,66,88},{15,72,43,37}};  
  printf("max value is %d\n",max_value(a,3));
  return 0;
}
int max_value(int array[][4],int n)
{
   int i,j,max;
   max=array[0][0];
   for(i=0;i<n;i++)
     for(j=0;j<4;j++)
        if(array[i][j]>max)
          max=array[i][j];
   return max;
}


/*例:3个学生4门课,计算总平均分,并输出第n个学生成绩*/

#include<stdio.h>
void average(int *p,int n);
void search(int (*p)[4], int n);
int main()
{
  int score[3][4]={{65,85,87,58},{56,54,85,96},{48,69,78,98}};
  average(*score,12);
  search(score,2);    //单词拼写少了一个a,导致出错,为什么这里后面是整数2?
  return 0;
}

void average(int *p,int n)
{
  int *p_end,sum=0,aver;
  p_end=p+n-1;
  for(;p<=p_end;p++)
     sum=sum+(*p);
  aver=sum/n;
  printf("average=%4d\n",aver);
}

void search(int (*p)[4],int n)
{
   int i;
   printf("No.%d :",n);
   for(i=0;i<4;i++) 
      printf("%4d",*(*(p+n)+i));  //不小心这里少了一个小括号
   printf("\n");
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C语言及程序设计提高例程-26 实现线性表基本操作的函数

贺老师教学链接  C语言及程序设计提高 本课讲解删除指定位置上的数据#include #define SIZE 100 int deleteData(int[], int, int); int n=...

C程序设计语言- 指针与数组-4.1----指针与地址、指针与函数参数、指针与数组、地址算术运算

前言:继续C系列。 1.指针与地址

一维或多维数组作为函数参数的问题

C语言中的多维数组是不能完全做为参数来使用的,因为它是受限制的: /*===================================== 本程序是为了学习而使用的的测试程序,用来 说明C...

多维数组作为函数参数的形式

多维数组作为函数参数的形式      今天在看CSAPP的时候,直接敲入了书中的代码片段(P582),没有多加思考,却出现了段错误coredump,然后再纠结:被调用函数是否可以访问到主函数中的数...

C里面多维数组作为函数参数的问题

二维数组作为函数参数传递剖析(C语言)(6.19更新第5种) 前言   很多文章不外乎告诉你下面这几种标准的形式,你如果按照它们来用,准没错: //对于一个2行13列int元素的二维...

C++多维数组:存储方式、访问方式和作为函数参数

C++中数组可以嵌套,就是多维数组。 多维数组存储与访问方式 二维数组:一维数组可对应数学中的向量,而二维数组可对应矩阵,可用一个二维数组存储矩阵。 图1  二维数组mat示意图 ...

C++多维数组作为函数参数该怎么写?

众所周知,函数参数中一维数组的长度会被忽略的,但二维数组的第二维度就会被要求指定长度(否则gcc会报告“数组元素的类型不完全”)。这很好理解,它是为了让函数知道矩阵的宽度。同理,三维数组就会被要求指定...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第10周 C语言及程序设计提高例程-36 多维数组作函数参数
举报原因:
原因补充:

(最多只允许输入30个字)