
①目标
求一个二维数组(矩阵)周边元素的平均值?
首先筛选周边元素 , 行标列标 , 不是含0就是含4 。
再求平均值av 。
a[0
[0
a[0
[1
a[0
[2
a[0
[3
a[0
[4
a[1
[0
a[1
[1
a[1
[2
a[1
[3
a[1
[4
a[2
[0
a[2
[1
a[2
[2
a[2
[3
a[2
[4
a[3
[0
a[3
[1
a[3
[2
a[3
[3
a[3
[4
a[4
[0
a[4
[1
a[4
[2
a[4
[3
a[4
[4
。
~
②命令行
#include< stdio.h>
#include< stdlib.h>
#define N 5
~
③定义函数
【摩尔斯电码|C语言-二维数组条件筛选】double fun(int w[
[N
)
{
int ijk=0;
double s=0.0;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
/*筛选二维数组中满足条件的元素 , 一般用遍历*/
if(i==0||j==0||i==N-1||j==N-1)
/*行标列标 , 不是含0就是含N-1*/
{s=s+w[i
[j
;k++;
/*累加并计数 , 为平均值做准备*/
return s/k;
~
④主函数(调用)
void main()
{
FILE *wf;
/*不知道此处为何要指向文件的指针 , 我删了也可以执行 。 */
int a[N
[N
=
{0123401234012340123401234;
int ij;
double s;
system(\"CLS\");
/*清屏 , 虽然不知道这里为什么要清屏 , 期待大神解读*/
printf(\"The array\\");
for(i=0;i<N;i++)
{
for(i=0;i<N;i++){printf(\"%4d\"a[i
[j
);
/*注意此处嵌套 , \在外层for循环中 , 不在内层for循环中 , 意味着每一行一个回车 , 如果
printf(\"\\");
av=fun(a);
printf(\"The result\\");
printf(\"The average is:%lf\\"av);
wf=fopen(\"out.dat\"\"w\");
/*打开文件 , 文件使用方式为write写*/
fprintf(wf\"%lf\"av);
/*把平均值av按%lf格式 , 输出到wf所指的文件中*/
fclose(wf);
/*关闭文件 。
觉得最后三句文件操作有点多余 , 我试了 , 删了也没问题 , 期待大神解读*/
- 摩托罗拉|价格屠夫上新!摩托罗拉新机入网:支持68W快充
- 湖北|巅峰摩擦?i9 12950HX与R9 6900HX专业应用差距有多大?
- 近日|饿了么免单答案上热搜 网友化身福尔摩斯 你要试试吗?
- 联想又有一款机型即将升级到安卓12底层了|全球首发骁龙870 摩托神机edge s即将升级安卓12
- 摩托罗拉|同样是天玑8100,价格却相差1300元,贵的那款就一定好吗?
- 高通骁龙|摩托罗拉新机皇已入网,与小米抢骁龙8+首发,首发2亿像素相机
- 摩托罗拉edgeS30冠军版,入手仅需1899元,那是非常值得的
- 摩托罗拉|像素之王来了 摩托罗拉新旗舰影像参数敲定:2亿主摄加持
- 618活动大促已经结束了|摩托罗拉新机下月发布,搭载骁龙8+顶级旗舰
- 中国广电摩托罗拉骁龙8+机型列表公布
