c语言二维函数求和 c语言求和的函数

c语言求二维数组中所有元素的和

#includestdio.h

网站的建设成都创新互联专注网站定制,经验丰富,不做模板,主营网站定制开发.小程序定制开发,H5页面制作!给你焕然一新的设计体验!已为成都橡塑保温等企业提供专业服务。

int main(void)

{

int ar[3][3]= { {1,2,3},

{4,5,6},

{7,8,9}

};

int num;

int i,j;

int k = 0,sum=0;

int (*ptr)[3];

ptr = ar;

num = sizeof(ar) / sizeof(ar[0]);

printf("num = %d\n",num);

printf("%d\n",*(*(ptr +0) + 1));

for(i = 0; i 3 ;i++)

{

for(j = 0 ;j 3; j++)

{

k += *(*(ptr + i)+j);

//sum += k;   

}

}

printf("%d\n",k);

return 0;

}

扩展资料:

main()函数用法:

大多数UNIX系统对main函数提供了三个参数,原型如下:

intmain(intargc,char*argv[],char*env[]);

其中第三个参数是环境表地址。

ANSIC规定main函数只有两个参数,而且第三个参数与全局变量environ相比也没有带来更多益处,所以POSIX.1也规定应使用environ而不使用第三个参数。

通常用getenv和putenv函数来存取特定的环境变量,而不是用environ变量。

main函数的原型多是下面这种形式:

intmain(intargc,char*argv[]),参数argc代表了输入参数的个数,char*argv[]表示传入的参数的字符串,是一个字符串数组。

例如在linux平台下编写一个小程序:

int main(intargc,char*argv[])

int i;

printf("argc:%d\n",argc);

for(i=0;i<argc;i++)

printf("argv[%d]:%s\n",i,argv[i]);

exit(0);

用gcc编译后形成一个a.out的可执行的文件,运行a.out,其结果是:

argc=1,argv[0]=”a.out”

运行的程序的文件名,也占用一个参数位置,也就是说argv数组中的第一个单元指向的字符串总是可执行程序的名字,以后的单元指向的字符串依次是程序调用时的参数。这个赋值过程是操作系统完成的,只需要拿来用就可以了。

在命令行参数的提交中,系统会自动给指针数组后加上一个NULL,所以for(i=0;i<argc;i++)这句也可以换成while(*argv!=NULL)

int main(intargc)省略其它参数的定义也是可以的,这样运行时候argc就直接返回参数个数,而不返回其它。

运行命令行参数带有char*argv[]的时候,如果输入参数带有空格,应该用双引号括起来。

一个c语言二维数组求和的自定义函数问题,请大神赐教?

至少应该要贴出你的错误代码吧?

目测my_arr的长度与参数的长度不一致。上面是[3][4],下面是[4]

C语言程序:求一个二维数组元素的周边之和

求一个二维数组元素的周边之和:源程序如下:

#define N 3//宏定义N=3

#include stdio.h

void main()

{

int number[N][N] = { {1,2,3},{4,5,6},{7,8,9} };//定义二维数组并赋初值

int i, j;//定义循环变量

int sum = 0;//定义加和变量,并初始化赋值为0

for (i = 0; i N; i++)//控制行变量遍历

for (j = 0; j N; j++)//控制列变量遍历

if (i == 0 || i == (N-1) || j == 0 || j == (N-1))//判断是否为周边元素

sum += number[i][j];//进行求和运算

printf("%d", sum);//输出和

}

其中,上述程序中变量N,为数组的行列维数,可灵活进行修改。

程序运行结果如下:

扩展资料:

用行指针实现求一个二维数组四周元素的平均值。

#include stdio.h

#include stdlib.h

#define M 4

#define N 5

float fun(int(*p)[N], int m)

{

int i, j, k = 0;//定义循环变量

float sum, ave;//定义和变量、平均数变量

sum = 0;//初始化和变量为0

for (i = 0; i m; i++)//控制行变量遍历

for (j = 0; j N; j++)//控制列变量遍历

if(i == 0 || i == (m-1) || j == 0 || j == (N-1))//判断是否为周边元素

{

sum += p[i][j]; //进行求和运算

k++;

}

ave = sum / k;//求平均

return ave;//返回平均数

}

int main()

{

int a[M][N] = { {1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20} };

int i, j;

float ave;

for (i = 0; i M; i++)//遍历打印出数组全部元素

{

for (j = 0; j N; j++)

printf("%4d", a[i][j]);

printf("\n");

}

ave = fun(a,M);//函数计算并返回平均值

printf("average=%.2f\n", ave);//输出平均值

system("pause");//任意键继续

return 0;

}

扩展资料程序运行结果:

c语言 二维数组求和

double my_sum(double paired_value[][2],int n ) //需要指定二维数组后面一位,这样编译器才知道二维数组的列数。

C语言,二维数组作为调用函数,求各行数值的和,但求和出错,我觉得是在sum函数那里有问题。

你也太天真了,如果不用数组的话,c语言怎么能一次返回一组数据呢??

如果要返回多个数,就要把数组弄进去,存放到数组中,要不就一次返回一个值。

个人建议,就一次返回一行的和就行了。程序改成:

int sum(int a[10000][6], int n) //n表示行号

{

int i,j;

int m=0;

for(j=0;j6;j++)

{

m=m+a[n][j];

}              

return(m); 

}

这样在主程序中,

printf("第%d行各数之和为:%d",i+1,sum(a)); 

printf("\n");/*使元素分行*/

改成

for(i=0;i10000;i++)    

{

printf("第%d行各数之和为:%d\n",i+1,sum(a,i)); 

}

c语言中 用函数计算二维数组每行之和以及每列之和 怎么编程?

已通过测试

#include stdio.h

void fun(int a[][10],int row,int col)

{ int i,j,k,sum;

int r[10],c[10];

k=0;

for(i=0;irow;i++)

{ sum=0;

for(j=0;jcol;j++)

sum+=a[i][j];

r[k]=sum;

k++;

}

k=0;

for(j=0;jcol;j++)

{ sum=0;

for(i=0;irow;i++)

sum+=a[i][j];

c[k]=sum;

k++;

}

for(k=0;krow;k++)

printf("the sum of NO.%d row is %d\n",k+1,r[k]);

for(k=0;kcol;k++)

printf("the sum of NO.%d column is %d\n",k+1,c[k]);

}

main()

{ int a[10][10],row,col;

int i,j;

printf("Input the row and column of array:");

scanf("%d%d",row,col);

for(i=0;irow;i++)

for(j=0;jcol;j++)

scanf("%d",a[i][j]);

fun(a,row,col);

}


分享标题:c语言二维函数求和 c语言求和的函数
分享地址:http://myzitong.com/article/hiihis.html