用C语言编程求M×N二维数组的周边元素之和,并用函数实现

如题所述

#include<stdio.h>
#define M 3
#define N 4
int matrixsum(int d[M][N])
{
int i,j,sum=0;
for(j=0;j<N;j++)
sum+=d[0][j];
for(i=1;i<M;i++)
sum+=d[i][N-1];
for(j=N-2;j>=0;j--)
{
if(M>1)
sum+=d[M-1][j];
}
for(i=M-2;i>0;i--)
{
if(N>1)
sum+=d[i][0];
}
return sum;
}
int main()
{
int i,j,sum;
int data[M][N];
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
scanf("%d",&data[i][j]);
}
}
sum=matrixsum(data);
printf("%d\n",sum);
return 0;
}

不管几维矩阵都满足条件

追问

谢谢!!

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-03

参考代码如下,希望能帮到你。

追问

请问这个是用函数实现的吗

这个是用函数实现的吗

追答

本回答被提问者和网友采纳
第2个回答  2018-08-17
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#define M 4
#define N 5
int fun( int a [M][N])
{
int i,j,sum=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+=a[i][j];
return sum;
}
void main()
{
FILE *wf;
int aa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};
int i, j, y;
system("CLS");
printf ("The original data is :\n ");
for(i=0; i<M;i++)
{for (j=0; j<N;j++)
printf("%6d ",aa[i][j]);
printf("\n ");
}
y=fun(aa);
printf("\nThe sun: %d\n ",y);
printf("\n ");
/******************************/
wf=fopen("out.dat","w");
fprintf (wf,"%d",y);
fclose(wf);
/*****************************/
}

编写程序求M*N二维数组的周边元素之和
INTERVAL-SUM(a, s, e) \/*区间求和函数 t←0 for s to e do t←t + a[s]return (t)sum←INTERVAL-SUM(A[0], 0, N-1)+ INTERVAL-SUM(A[M-1], 0, N-1)for r←1 to M-2 sum←(sum + matrix[r][0] + matrix[r][N-1])...

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;...

c++求二维数组周边元素之和
using namespace std;int add(int* a, int n, int m) { int i,j;int sum = 0;for (i = 0; i < n; i++)if (i == 0 || i == n-1) { for ( j = 0; j < m; j++) { sum += a[i*m+j];} } else { sum += a[i*m];sum += a[i*m+m-1];} return...

下列程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun(),函 ...
int fun(int w[][N]){ int i, j, k=0;int s=0;for(i=0; i<N; i++)for(j=0; j<N; j++)if(i==0 || i==N-i || j==0 || j==N-A){ s=s+w[i][j]*w[i][j];} return s;}

编写函数,求一个二维数组周边元素的最大值和最小值之和;主函数中初始化...
include "stdio.h"int fun(int a[][4]){int i,j,max,min; max=min=a[0][0]; for(i=0;i<4;i++) for(j=0;j<4;j++) if(i==0||j==0||i==3||j==3) if(a[i][j]>max)max=a[i][j]; else if(a[i][j]<min)min=a[i][j]; return max+min;}...

用vb语言编写:用函数过程求二维数组各元素之和。的程序
'生成数组 Dim i, j As Integer For i = 1 To 6 For j = 1 To 6 RndArr(i, j) = Int(Rnd * 101) + 100 Next j Next i End Sub Sub PrintArray(MyArr() As Integer)'在图形框中输出数组 Dim i As Integer Picture1.Cls '清除原先输出数据 For i = 1 To 6 Picture1.Print...

通过函数调用方式编写程序,计算n*n矩阵周边元素绝对值之和
1、第一步在我们的电脑上打开matlab,点击命令行窗口。2、在命令行窗口中输入A = [ 1 2 3 4;-1 -2 -3 -2;1 0 -1 1]来创建一个A矩阵,按回车键,将A变量存储到系统中。3、通过“sum(sum(abs(A)))”代码来求A矩阵所有元素的绝对值之和,对于二维矩阵需要使用两次sum函数才能求得所有...

求一个4*4的二维数组周边元素的和
int i,s=0;for(i=0;i<N;i++)s+=a[0]+a[M-1];for(i=1;i<M-1;i++)s+=a[0]+a[N-1];return s;} int main(){ int aa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};int i,j,y;printf("The original data is:\\n");for(i=0...

c语言编写一个程序,要求实现以下功能,(1)分别求该矩阵的主、次对角...
include <stdio.h>int main(){ int aa[4][4] = {0}; int i, j, sum11 = 0, sum12 = 0, sum2 = 0, sum3 = 0; printf("请输入4*4个数...\\n"); for(i = 0; i < 4; i++) { for(j = 0; j < 4; j++) { scanf("%d,", &aa[i]...

(C++)求大神带飞 编写一个主函数和3个子函数,实现下面功能:1子函数q...
(C++)求大神带飞 编写一个主函数和3个子函数,实现下面功能:1子函数qiuhe()采用循环,计算公式的和:1\/30+2\/29+...+30\/1,输出和2子函数tu()输出下面图形***(符号是居中对齐的)3子函数juzhen()求一个4*4二维数组中的周边元素之和,输出和。1 2 3 45 6 7 89 10 11 1213 14 15 16在线等 谢谢...

相似回答