//函数与多维数组
#include<stdio.h>
#define ROWS 3
#define COLS 4
void sum_row(int ar[][COLS],int rows);//ar后面的括号是空的,代表指针 ,
void sum_col(int ar[][COLS],int rows);//声明函数
void sum2d(int ar[][COLS],int rows);//声明函数
int array[ROWS][COLS]={{2,4,6,8},{3,5,7,9},{12,10,8,6}};
int main(void)
{
sum_row(array,ROWS);//函数的调用
sum_col(array,ROWS);//函数的调用
sum2d(array,ROWS);//函数的调用
return 0;
}
void sum_row(int ar[][COLS],int rows)
{
int i,j;
int total=0;
for(i=0;i<rows;i++)
{
for(j=0;j<COLS;j++)
{
total+=ar[i][j];
}
printf("row%d=%d\n",i+1,total);
}
}
void sum_col(int ar[][COLS],int rows)
{
int i,j;
int total=0;
for(i=0;i<rows;i++)
{
for(j=0;j<COLS;j++)
{
total+=ar[j][i];
}
printf("col%d=%d\n",i+1,total);
}
}
void sum2d(int ar[][COLS],int rows)
{
int i,j;
int total=0;
for(i=0;i<rows;i++)
{
for(j=0;j<COLS;j++)
{
total+=ar[i][j];
}
}
printf("Sum of all elements=%d\n",total);
}
//问题:为什么要把行数放在形参,把列数放在函数体内,谁能解答一下吗?
#include<stdio.h>
#define ROWS 3
#define COLS 4
void sum_row(int ar[][COLS],int rows);//ar后面的括号是空的,代表指针 ,
void sum_col(int ar[][COLS],int rows);//声明函数
void sum2d(int ar[][COLS],int rows);//声明函数
int array[ROWS][COLS]={{2,4,6,8},{3,5,7,9},{12,10,8,6}};
int main(void)
{
sum_row(array,ROWS);//函数的调用
sum_col(array,ROWS);//函数的调用
sum2d(array,ROWS);//函数的调用
return 0;
}
void sum_row(int ar[][COLS],int rows)
{
int i,j;
int total=0;
for(i=0;i<rows;i++)
{
for(j=0;j<COLS;j++)
{
total+=ar[i][j];
}
printf("row%d=%d\n",i+1,total);
}
}
void sum_col(int ar[][COLS],int rows)
{
int i,j;
int total=0;
for(i=0;i<rows;i++)
{
for(j=0;j<COLS;j++)
{
total+=ar[j][i];
}
printf("col%d=%d\n",i+1,total);
}
}
void sum2d(int ar[][COLS],int rows)
{
int i,j;
int total=0;
for(i=0;i<rows;i++)
{
for(j=0;j<COLS;j++)
{
total+=ar[i][j];
}
}
printf("Sum of all elements=%d\n",total);
}
//问题:为什么要把行数放在形参,把列数放在函数体内,谁能解答一下吗?