C语言:编写函数fun返回二维数组周边元素之和,咋写? C语言程序:求一个二维数组元素的周边之和

作者&投稿:恽看 (若有异议请与网页底部的电邮联系)
入门到放弃?
“C/C++真的太难学了,我准备放弃了!”
很多初学者在学完C和C++的基本语法后,就停滞不前了,最终走向“从入门到放弃”。其实,我们初学者最需要的不是HelloWorld,也不是语法知识的堆砌,需要的只是实战项目的磨砺。
一个项目一座城
一个项目,一座城。写完一个项目,攻克一座城池。
以下十三个循序渐进的项目,让你从小白,快速晋升为大牛。
奇牛项目1《黑客攻击系统》-第一城
从完全零基础开始,手把手开发这款黑客攻击系统。
通过用户端的输入, 向服务器端木马发送攻击命令,实现多种方式的攻击效果。
通过这个项目,可以掌握C/C++基础(数据类型,变量的使用,各种运算,控制语句,命名空间,输入输出,函数调用,库文件的使用等),直接使用图形库来实现窗口用户界面,直接使用库文件来实现攻击效果。
奇牛项目2 《人工智能地形导航系统》-第二城‍‍
具备C/C++基础后,进一步学习二维数组、多维数组在工程项目中的应用。
根据地图的海拔数据,来识别地形上的各个峰点(最高点)和谷点(最低点),以确定地形中峰点的数目和位置,为探测器提供导航数据。
通过这个项目,可以深刻掌握二维数组、多维数组的本质,以及在工程项目中的应用方法。
奇牛项目3《人工智能双色球预测系统》-第三城‍
根据笔者Rock的闲暇之作改写,体会以小博大的乐趣。
通过自动分析博彩官网的海量数据,根据自定义的统计预测规则,来捕捉下期开奖的最大概率。
通过这个项目,掌握指针的使用,以及指针在工程项目中的应用。

奇牛项目4《地震监测系统》-第四城‍
地震检波器每隔固定的时间间隔,采样一次预测地震的能量数据,并保存到文件中。地震监测系统从这个文件中读取相应的能量数据,测试在给定的时间点上,一个短时间窗口内的取样值与一个长时间窗口内取样值的商,如果这个比例高于给定的阈值,那么在这个事件点上极有可能发生地震。
通过这个项目,掌握C/C++文件的读写、以及动态内存管理的使用,以及它们在工程项目中的应用。
奇牛项目5《智能婚恋交友系统》-第五城
程序员的相亲活动,低调且奢华。这个项目直接致敬某XX佳缘婚恋交友平台,毕竟Rock也曾经是该平台的注册会员,并在其中活跃良久。
这个项目实现了该平台的核心功能-高匹配度自动交友。
通过这个项目,掌握C++的面向对象思想、继承和派生、多态、友元、运算符重载等核心机制,以及它们在工程中的应用。
奇牛项目6《广州军区微波通信系统》-第六城
这个项目是根据笔者Rock负责研发的广州军区南海无线微波通信系统改写的, 已去除敏感数据。
这个项目是在菲律宾、越南肆意骚扰我国南海岛屿的背景下研发的。通过这个项目,掌握C++核心机制-多态的使用,以及在军事工程项目中的应用。
奇牛项目7《模板库高级编程-万能择优器》-第七城
在掌握了C、C++的核心特性之后,能否掌握C++标准模板库STL, 是区分一名合格C++程序员的重要标志。
这个项目通过构建一个通用的择优器,来掌握C++泛型编程的使用,以及在自定义模块开发中的应用。
奇牛项目8《游戏服务器端数据库》-第八城
在征服了C/C++语言的核心特性之后,很多人会感到新的迷茫:C/C++语言到底能做什么?海量用户数据怎么处理?
这个项目从零开始构建大型游戏数据库,以掌握数据库开发的方法,以及在产品级项目中的应用。
奇牛项目9 《企业QQ》-第九城
很多C/C++初学者,认为C和C++虽然很强大,但是对于用户界面开发,就不是很方便了。

其实对于用户界面的开发,C和C++,尤其是C++,是非常强悍的。各种绚丽的用户界面,C++都能游刃有余地呈现。
这个项目能够深度掌握基于C++的用户界面开发,以及网络编程,实现产品级的应用效果。
奇牛项目10 《跨平台Word》-第十城
IT外包开发时,用户的需求总是千变万化,界面和功能都需要做特殊的定制,这个项目让我们掌握开发特定UI和特定功能的应用软件,为以后独立承接IT外包打下足够的基础。
奇牛项目11《 游戏外*修改器》-第十一城
外*、逆向、破解无疑是每一位程序员为之向往的“禁地”,这个项目融合逆向、汇编、DLL注入、内存篡改等黑技术,开发客户端游戏的外挂,实现对游戏数据的截取、修改。
通过这个项目,可以深刻掌握指针、逆向、DLL注入等技术的使用,以及Windows客户端应用的开发。
奇牛项目12 《人工智能中国象棋人机对弈》-第十二城
完胜李世石和柯洁的阿尔法狗,其底层框架就是使用C++实现的。
除了围棋,C++更是在象棋领域完胜人类。这个项目,就是使用C++打造的人工智能象棋。
通过这个项目,可以轻松掌握各种复杂数据结构,把个人编程能力提升到极致。
奇牛项目13 《电信级大型互联网项目-共享顺风车系统》-第十三城
掌握C、C++客户端开发之后,高性能服务器开发,成为判别C++高级程序员的重要标志。这个项目将实现电信级的大型互联网服务器。
通过奇牛编程的项目实战,可以掌握百万级高并发服务器的核心技术(线程池、epool架构、协议开发等)
敲代码的夜,清脆的键击,孤独而坚定。
弹指间,攻城略地,早已硝烟弥漫。
十三座城池,待你来征服。
经过以上13个项目的修炼,你已经从小白蜕变为能够驾驭大型项目开发的大牛了。

1 模块化程序设计
在程序设计的过程中,有一个很重要的思想是:程序功能模块化。就是对程序的功能进行划分,每一个功能模块使用一个函数来封装实现。
例如,开发一个图书馆管理系统,这个系统涉及到学生借书、还书的操作。那么,把借书和还书分解成一个独立的功能模块,每个功能模块使用独立的函数来实现。
所以,下面我们介绍函数的定义和使用,灵活使用函数来设计程序。
2 引出函数定义
在讲解第一个C语言程序例子的时候,我们就接触到了“函数”;并且知道,函数就像是一个工具,我们可以用它来完成某项工作。我们再来看看这个程序的代码,代码如下:
深入学习,可以交个朋友,工人人人号:韦凯峰linux编程学堂
可以看到,在这个程序中,用到了三个函数,有main函数、printf函数、system函数;其中,main函数是我们自己定义的函数,printf函数和system函数是Linux系统提供的函数。其中Linux系统提供的函数会封装到一个库中,通过库的方式给用户使用,所以,也称为:库函数。
所以,从函数定义的角度来讲,函数可以分为:用户自定义函数和库函数。
(1) 用户自定义函数:就是我们自己使用C语言来编写定义和实现的函数,例如main函数,就是我们自己定义的函数。
(2) 库函数:就是C语言系统提供的函数,例如printf函数,我们不需要定义和实现它;可以直接使用它。
举个例子,我们在吃饭的时候,都需要使用筷子;那么,想方便的话,可以直接到超市买一次性的筷子,此时,我们就拥有了一双筷子,可以用来吃饭。可以看到,筷子就是一个工具,我们可以使用这个工具来完成吃饭。
但是,有一天,我们觉得超市的一次性筷子不卫生健康,那么,就到山上砍了竹子,自己做了一双纯天然的筷子。此时,我们就拥有了自己做的一双筷子,它也是一个工具,我们可以用它来完成吃饭。但是,这双筷子是我们自己做的筷子,而不是从超市买来的筷子。
那么,通过这个例子,我们可以归纳类比:
(1) 我们从超市买来的筷子,就如同库函数,不需要自己定义,可以直接拿来使用;
(2) 我们自己做的筷子,就如同用户自定义函数,是用户自己定义制作出来的函数;
(3) 无论是从超市买来的一次性筷子,还是我们制作的筷子,都是一个工具,都可以用来完成吃饭。所以,函数也就是一个工具,我们可以用它来完成某一项工作;

#include <stdio.h>

#include <stdlib.h>


#define N 10


void fun(int (*arr)[N]) {

int sum = 0;

for (int i = 0; i != N; i++)

for (int j = 0; j != N; j++) {

if (i == 0 || i == N - 1 || j == 0 || j == N - 1)

sum += arr[i][j];

}

printf("%d
", sum);

}


int main()

{

int arr[N][N];

for (int i = 0; i != N; i++) {

for (int j = 0; j != N; j++) {

arr[i][j] = rand() % 100;

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

}

printf("
");

}

fun(arr);

return 0;

}



代码文本:



入门到放弃?
“C/C++真的太难学了,我准备放弃了!”
很多初学者在学完C和C++的基本语法后,就停滞不前了,最终走向“从入门到放弃”。其实,我们初学者最需要的不是HelloWorld,也不是语法知识的堆砌,需要的只是实战项目的磨砺。
一个项目一座城
一个项目,一座城。写完一个项目,攻克一座城池。
以下十三个循序渐进的项目,让你从小白,快速晋升为大牛。
奇牛项目1《黑客攻击系统》-第一城
从完全零基础开始,手把手开发这款黑客攻击系统。
通过用户端的输入, 向服务器端木马发送攻击命令,实现多种方式的攻击效果。
通过这个项目,可以掌握C/C++基础(数据类型,变量的使用,各种运算,控制语句,命名空间,输入输出,函数调用,库文件的使用等),直接使用图形库来实现窗口用户界面,直接使用库文件来实现攻击效果。
奇牛项目2 《人工智能地形导航系统》-第二城‍‍
具备C/C++基础后,进一步学习二维数组、多维数组在工程项目中的应用。
根据地图的海拔数据,来识别地形上的各个峰点(最高点)和谷点(最低点),以确定地形中峰点的数目和位置,为探测器提供导航数据。
通过这个项目,可以深刻掌握二维数组、多维数组的本质,以及在工程项目中的应用方法。
奇牛项目3《人工智能双色球预测系统》-第三城‍
根据笔者Rock的闲暇之作改写,体会以小博大的乐趣。
通过自动分析博彩官网的海量数据,根据自定义的统计预测规则,来捕捉下期开奖的最大概率。
通过这个项目,掌握指针的使用,以及指针在工程项目中的应用。

奇牛项目4《地震监测系统》-第四城‍
地震检波器每隔固定的时间间隔,采样一次预测地震的能量数据,并保存到文件中。地震监测系统从这个文件中读取相应的能量数据,测试在给定的时间点上,一个短时间窗口内的取样值与一个长时间窗口内取样值的商,如果这个比例高于给定的阈值,那么在这个事件点上极有可能发生地震。
通过这个项目,掌握C/C++文件的读写、以及动态内存管理的使用,以及它们在工程项目中的应用。
奇牛项目5《智能婚恋交友系统》-第五城
程序员的相亲活动,低调且奢华。这个项目直接致敬某XX佳缘婚恋交友平台,毕竟Rock也曾经是该平台的注册会员,并在其中活跃良久。
这个项目实现了该平台的核心功能-高匹配度自动交友。
通过这个项目,掌握C++的面向对象思想、继承和派生、多态、友元、运算符重载等核心机制,以及它们在工程中的应用。
奇牛项目6《广州军区微波通信系统》-第六城
这个项目是根据笔者Rock负责研发的广州军区南海无线微波通信系统改写的, 已去除敏感数据。
这个项目是在菲律宾、越南肆意骚扰我国南海岛屿的背景下研发的。通过这个项目,掌握C++核心机制-多态的使用,以及在军事工程项目中的应用。
奇牛项目7《模板库高级编程-万能择优器》-第七城
在掌握了C、C++的核心特性之后,能否掌握C++标准模板库STL, 是区分一名合格C++程序员的重要标志。
这个项目通过构建一个通用的择优器,来掌握C++泛型编程的使用,以及在自定义模块开发中的应用。
奇牛项目8《游戏服务器端数据库》-第八城
在征服了C/C++语言的核心特性之后,很多人会感到新的迷茫:C/C++语言到底能做什么?海量用户数据怎么处理?
这个项目从零开始构建大型游戏数据库,以掌握数据库开发的方法,以及在产品级项目中的应用。
奇牛项目9 《企业QQ》-第九城
很多C/C++初学者,认为C和C++虽然很强大,但是对于用户界面开发,就不是很方便了。

其实对于用户界面的开发,C和C++,尤其是C++,是非常强悍的。各种绚丽的用户界面,C++都能游刃有余地呈现。
这个项目能够深度掌握基于C++的用户界面开发,以及网络编程,实现产品级的应用效果。
奇牛项目10 《跨平台Word》-第十城
IT外包开发时,用户的需求总是千变万化,界面和功能都需要做特殊的定制,这个项目让我们掌握开发特定UI和特定功能的应用软件,为以后独立承接IT外包打下足够的基础。
奇牛项目11《 游戏外*修改器》-第十一城
外*、逆向、破解无疑是每一位程序员为之向往的“禁地”,这个项目融合逆向、汇编、DLL注入、内存篡改等黑技术,开发客户端游戏的外挂,实现对游戏数据的截取、修改。
通过这个项目,可以深刻掌握指针、逆向、DLL注入等技术的使用,以及Windows客户端应用的开发。
奇牛项目12 《人工智能中国象棋人机对弈》-第十二城
完胜李世石和柯洁的阿尔法狗,其底层框架就是使用C++实现的。
除了围棋,C++更是在象棋领域完胜人类。这个项目,就是使用C++打造的人工智能象棋。
通过这个项目,可以轻松掌握各种复杂数据结构,把个人编程能力提升到极致。
奇牛项目13 《电信级大型互联网项目-共享顺风车系统》-第十三城
掌握C、C++客户端开发之后,高性能服务器开发,成为判别C++高级程序员的重要标志。这个项目将实现电信级的大型互联网服务器。
通过奇牛编程的项目实战,可以掌握百万级高并发服务器的核心技术(线程池、epool架构、协议开发等)
敲代码的夜,清脆的键击,孤独而坚定。
弹指间,攻城略地,早已硝烟弥漫。
十三座城池,待你来征服。
经过以上13个项目的修炼,你已经从小白蜕变为能够驾驭大型项目开发的大牛了。

请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函 数中赋予?~

int fun(int a[M][N]) {
int sum = 0;
for (int i = 0; i != M; i++)
for (int j = 0; j != N; j++) {
if (i == 0 || i == M - 1 || j == 0 || j == N - 1)
sum += a[i][j];
}
return sum;
}

求一个二维数组元素的周边之和:源程序如下:
#define N 3//宏定义N=3
#include
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
#include
#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("
");
}
ave = fun(a,M);//函数计算并返回平均值
printf("average=%.2f
", ave);//输出平均值
system("pause");//任意键继续
return 0;
}
扩展资料程序运行结果:


C语言中返回二维数组
答:如果是在main中动态获得数组的值,那么,最好在main里面创建数组,然后把数组传给fun进行修改,等fun返回以后,main获得的就是修改后的数组了。void func(char array[1000][4]){ array[5][2] = 100;}main(){ char arr[1000][4]; fun(arr);} ...

程序设计题:请编写函数fun,函数的功能是求出二维数组周边元素之和,作为...
答://fun函数内容 //考虑遍历法:所有元素都找一遍,满足条件的加到sum里去 int i,j,sum=0;for(i=0;i<M;i++)for(j=0;j<N;j++){ if(i==0||j==0||i==M-1||j==N-1)sum+=aa[i][j];} return sum;

请编写函数int fun ,a是一个M行N列的二维数组,函数的功能是求出二维数组...
答:int fun ( int a[M][N] ){ int i,j,sum=0;for(i=1;i<M-1;i++){//将边上的两列元素除了首尾两行其余相加 sum+=(a[i][0]+a[i][N-1]);} for(j=0;j<N;j++){//将首尾两行元素相加 sum+=(a[0][j]+a[M-1][j]);} return sum;} 特点 1、数组是相同数据类型的...

请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回...
答:int fun(int a[M][N]) { int sum = 0;for (int i = 0; i != M; i++)for (int j = 0; j != N; j++) { if (i == 0 || i == M - 1 || j == 0 || j == N - 1)sum += a[i][j];} return sum;} ...

请编写一个函数fun.他的功能是:求出一个2xM整型二维数组中最大的值...
答:是int a[2][m]么?那就这样 把m带进去的:int fun(int m){int a[2][m];int i,j,max=1;for(i=1;i<=2;i++){ for(j=1;j<=m;j++){ max=max>a[i][j]?max:a[i][j];} } return max;}

C语言问题 请编写函数fun,其功能是:找出2*M整型二维数组中最大元素的...
答:define M 4int fun (int a[][M]){ int i=0,j=0; //进行二重索引 int max=a[i][j]; //用于保存最大值,初始化为第一个数 for(i=0;i<N;i++) //进行循环,每一个值与max比较,大于就赋给max,这样下来max就 for(j=0;j<M;j++) // 是数组中最大值 if(a[...

C语言函数返回值为二维数组
答:函数不能返回一个数组,只能返回一个变量,或地址 。如果你想直接返回一个二维数组,这是做不到的。你可以用下面的方法 ,先建一个结构体。struct array{int a[3][3];}; array solve(){array a;return a;} 通过这种方法,来得到二维数组。

有一个C语言的题目想请教一下!
答:编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。include <conio.h> include <stdio.h> define M 4 define N 5 注:该题的第一个for()循环是计算矩阵的最上一行和最下一行的总和,第二个for()是计算除两头元素以外的最左一列和最右一列的...

c语言求助
答:首先看main函数 void main(){ char str[ ][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"}; //这里定义了一个二维数组,没有指定行数,而是使用直接初始化,也就是说 后面{}里有多个这字符串,就是有多少行,这里有七行 printf("%d\n",fun(str)); //这里调用fun函数...

请用C语言编写函数fun, 函数的功能是: 将M行N列的二维数组中的数据...
答:函数使用两个嵌套的for循环以列为顺序遍历二位数组,将其中每一个数据元素都存储进准备好的一维数组中。因为c语言函数无法将整个数组作为返回值,故函数会返回一个指向一维数组的指针。具体代码如图: