阅读下面代码,程序列举了3种二维数组作为参数传递的方法:[转载]

#include < stdio.h >
#define  ROWS 3
#define  COLS 4
void  sum_rows( int  arr[][COLS], int  rows);
void  sum_cols( int  [][COLS], int );         // 可以省略名称
int  sum2d( int  ( * arr)[COLS], int  rows);    // 另一种语法形式
int  main( void )
{
    
int  junk[ROWS][COLS] = {{ 1 , 2 , 3 , 4 },{ 5 , 6 , 7 , 8 },{ 9 , 10 , 11 , 12 }};
    
    sum_rows(junk,ROWS);
// 求出每行的数值总和。 
    printf( ' /n ' );        // 求出每列的数值总和。 
    sum_cols(junk,ROWS); // 求出全部数值的总和。 
    
    printf(
' /nthe sum of the junk is %d ' ,sum2d(junk,ROWS));
    
    getchar();
    
return   0 ;

void  sum_rows( int  arr[][COLS], int  rows)
{
    
int  r,c,tot;
    
for (r = 0 ;r < rows;r ++ )
    {
        tot
= 0 ;
        
for (c = 0 ;c < COLS;c ++ )
        {
            tot
+= arr[r][c];
        }
        printf(
' row%d,sum=%d/n ' ,r,tot);
    }
}
void  sum_cols( int  arr[][COLS], int  rows)
{
    
int  r,c,tot;
    
for (c = 0 ;c < COLS;c ++ )
    {
        tot
= 0 ;
        
for (r = 0 ;r < rows;r ++ )
        {
            tot
+= arr[r][c];
        }
        printf(
' col%d,sum=%d/n ' ,c,tot);
    }
}

int  sum2d( int  ( * arr)[COLS], int  rows)
{
    
int  r,c,tot = 0 ;
    
for (r = 0 ;r < rows;r ++ )
    {
        
for (c = 0 ;c < COLS;c ++ )
        {
            tot
+= arr[r][c];
        }
    }
    
return  tot;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值