zoukankan      html  css  js  c++  java
  • 二维数组做参数

    10个学生5门课成绩,分别用三个函数实现三个内容:①计算每个学生的平均分②计算每门课的平均分③找出50个分数中最高分的学生并打印那一行

    一个10×6的数组。第一列存学号:代码如下

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int a[10][6];
     5     for(int i=0;i<10;i++)
     6     for(int j=0;j<6;j++)
     7     scanf("%d",&a[i][j]);
     8     void aver_stu(int (*p)[6],int n);
     9     void aver_cla(int (*p)[6]);
    10     void search(int (*p)[6],int n);
    11     aver_stu(a,10);
    12     aver_cla(a);
    13     search(a,10);
    14     return 0;
    15 }
    16 
    17 void aver_stu(int (*p)[6],int n)
    18 {double aver[10];
    19     for(int i=0;i<n;i++)
    20     {int sum=0; 
    21         for(int j=1;j<6;j++)
    22         {
    23             sum+=p[i][j];
    24         }
    25         aver[i]=sum/5.0;
    26     }
    27     for(int k=0;k<10;k++)
    28     printf("%5.2lf",aver[k]);
    29 }
    30 
    31 void aver_cla(int (*p)[6])
    32 {double aver[5];
    33     for(int i=1;i<6;i++)
    34     { int sum=0;
    35         for(int j=0;j<10;j++)
    36         {
    37             sum+=p[j][i];
    38         }
    39         aver[i-1]=sum/10.0;
    40     }
    41     for(int k=0;k<5;k++)
    42     {
    43         printf("%5.2lf",aver[k]);
    44     }
    45 }
    46 
    47 void search(int (*p)[6],int n)
    48 {
    49     int max=0;int m,l;
    50     for(int i=0;i<n;i++)
    51     for(int j=1;j<6;j++)
    52     {
    53         if(max<p[i][j])   
    54         {max=p[i][j];m=i;l=i;}
    55     }
    56     for(int q=0;q<6;q++)
    57     {printf("%d",p[m][q]);
    58      } 
    59 }

    规定:如果将二维数组作为参数传递给函数,那么在函数的参数声明中必须指明数组的列数,数组的行数没有太大关系,可以指定也可以不指定。因为函数调用时传递的是一个指针,它指向由行向量够成的一维数组。因此二维数组作为函数参数正确写法如下所示:   

    void Func(int array[3][10]); 

    void Func(int array[ ][10]);

    因为数组的行数无关紧要,所以还可以写成如下形式:

    void Func(int (*array)[10]);  注意*array需要用括号括起来。

    这种形式的声明参数是一个指针,它指向具有10个元素的一维数组。因为[]的优先级比*的优先级高,故*array必须用括号括起来

  • 相关阅读:
    hihoCoder #1179 : 永恒游戏 (暴力枚举)
    HDU 5269 ZYB loves Xor I (二分法)
    HDU 5268 ZYB loves Score (简单模拟,水)
    acdream 1683 村民的怪癖(KMP,经典变形)
    acdream 1686 梦醒(时钟重合)
    acdream 1685 多民族王国(DFS,并查集)
    acdream 1681 跳远女王(BFS,暴力)
    HDU 5265 pog loves szh II (技巧)
    HDU 5264 pog loves szh I (字符串,水)
    HDU 1023 Train Problem II (卡特兰数,经典)
  • 原文地址:https://www.cnblogs.com/wuruofeng/p/8081708.html
Copyright © 2011-2022 走看看