用指针、子函数的方法去一维数组中所有元素的平均值,并放在a[0]处
《程序设计基础实训指导教程-c语言》
ISBN 978-7-03-032846-5
p142
7.1.2 上级实训内容
【实训内容7】用指针、子函数的方法去一维数组中所有元素的平均值,并放在a[0]
处
传递规则-4种方法
- (1) 数组名 ---> 数组名
- (2) 数组名 ---> 指针变量
- (3) 指针变量 ---> 数组名
- (4) 指针变量 ---> 指针变量
分析:
- 先在主函数中定义一个含有
11
个元素的一维数组a
,第一个元素a[0]
的值为0
,其他元素的值为任意值 - 用一个子函数给数组中除
a[0]
以外的所有元素赋初值,实参和形参都要求是指针变量 - 用另一个子函数求平均值,并返回其值
传递规则:主函数 | 子函数
---------------------------------
(1) 数组名 ---> 数组名
-----------------------------------
(2) 数组名 ---> 指针变量
------------------------------
(3) 指针变量 ---> 数组名
----------------------------------
(4) 指针变量 ---> 指针变量
---------------------------------
(1) 数组名 —> 数组名
//---------------------------------
//(1) 数组名 ---> 数组名
//-----------------------------------
#include<stdio.h>
#define M 11
void num_scanf(double *); //声明输入数组的函数
double num_aver(double a[]); //声明计算和和平均值的函数(a[]会转化为*a)
int main()
{double a[M]={0},*pa; //定义一个数组和指向数组的指针pa=a; //指针指向一维数组首地址num_scanf(pa);printf("所有元素的平均值:%.3lf\n",num_aver(a)); //数组名
}
void num_scanf(double *a)
{printf("输入数组元素的值从a[1]-a[%d]共%d个数(以空格隔开):\n",M-1,M-1);int i;for(i=1;i<M;i++){scanf("%lf",(a+i));}getchar();printf("验证输入!\n");for(i=1;i<M;i++){printf("%.2lf\t",*(a+i));}printf("\n");
}
double num_aver(double a[]) //数组名
{int i;for(i=1;i<M;i++){a[0]+=a[i]; //求和}printf("\n! a[0] !:%lf\n",a[0]);return(a[0]/(M-1)); //求平均值,并返回
}
(2) 数组名 —> 指针变量
//-----------------------------------
//(2) 数组名 ---> 指针变量
//------------------------------
#include<stdio.h>
#define M 11
void num_scanf(double *); //声明输入数组的函数
double num_aver(double *); //声明计算和和平均值的函数(形参为指针变量)
int main()
{double a[M]={0},*pa; //定义一个数组和指向数组的指针pa=a; //指针指向一维数组首地址num_scanf(pa);printf("所有元素的平均值:%.3lf\n",num_aver(a)); //数组名
}
void num_scanf(double *a)
{printf("输入数组元素的值从a[1]-a[%d]共%d个数(以空格隔开):\n",M-1,M-1);int i;for(i=1;i<M;i++){scanf("%lf",(a+i));}getchar();printf("验证输入!\n");for(i=1;i<M;i++){printf("%.2lf\t",*(a+i));}printf("\n");
}
double num_aver(double *x) //指针变量
{int i;for(i=1;i<M;i++){x[0]+=x[i]; //求和}printf("\n! a[0] !:%lf\n",x[0]);return(x[0]/(M-1)); //求平均值,并返回
}
(3) 指针变量 —> 数组名
//------------------------------
//(3) 指针变量 ---> 数组名
//------------------------------
#include<stdio.h>
#define M 11
void num_scanf(double *); //声明输入数组的函数
double num_aver(double a[]); //声明计算和和平均值的函数(a[]会转化为*a)
int main()
{double a[M]={0},*pa; //定义一个数组和指向数组的指针pa=a; //指针指向一维数组首地址num_scanf(pa);printf("所有元素的平均值:%.3lf\n",num_aver(pa)); //指针变量
}
void num_scanf(double *a)
{printf("输入数组元素的值从a[1]-a[%d]共%d个数(以空格隔开):\n",M-1,M-1);int i;for(i=1;i<M;i++){scanf("%lf",(a+i));}getchar();printf("验证输入!\n");for(i=1;i<M;i++){printf("%.2lf\t",*(a+i));}printf("\n");
}
double num_aver(double a[]) //数组名
{int i;for(i=1;i<M;i++){a[0]+=a[i]; //求和}printf("\n! a[0] !:%lf\n",a[0]);return(a[0]/(M-1)); //求平均值,并返回
}
(4) 指针变量 —> 指针变量
//----------------------------------
//(4) 指针变量 ---> 指针变量
//---------------------------------
#include<stdio.h>
#define M 11
void num_scanf(double *); //声明输入数组的函数
double num_aver(double *); //声明计算和和平均值的函数(形参为指针变量)
int main()
{double a[M]={0},*pa; //定义一个数组和指向数组的指针pa=a; //指针指向一维数组首地址num_scanf(pa);printf("所有元素的平均值:%.3lf\n",num_aver(pa)); //指针变量
}
void num_scanf(double *a)
{printf("输入数组元素的值从a[1]-a[%d]共%d个数(以空格隔开):\n",M-1,M-1);int i;for(i=1;i<M;i++){scanf("%lf",(a+i));}getchar();printf("验证输入!\n");for(i=1;i<M;i++){printf("%.2lf\t",*(a+i));}printf("\n");
}
double num_aver(double *x) //指针变量
{int i;for(i=1;i<M;i++){x[0]+=x[i]; //求和}printf("\n! a[0] !:%lf\n",x[0]);return(x[0]/(M-1)); //求平均值,并返回
}
用指针、子函数的方法去一维数组中所有元素的平均值,并放在a[0]处相关推荐
- 用子函数的方法求一维数组中所有元素之和
<程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p142 7.1.2 上级实训内容 [实训内容2]用子函数的方法求一维数组中所有元素之和 #includ ...
- 一维数组求平均值c语言编程软件,请问一道c++编程:求一维数组中全部元素的平均值?...
编程代码如下: //文件后缀名为.cpp #include using namespace std; #define NUM 20 //求和数据个数的最大值 int main() { int i,n; ...
- C语言编程>第二十一周 ② 请补充main 函数,该函数的功能是:把一维数组中的元素逆置,结果仍然保存在原数组中。
例题:请补充main 函数,该函数的功能是:把一维数组中的元素逆置,结果仍然保存在原数组中. 注意:仅在横线上填写所需的若干表达式或语句,请勿改动函数中的其它任何内容. 代码如下: #include& ...
- 一维数组中重复元素的去除
一维数组中重复元素的去除 前言 一.基本思路 二.步骤 1.设置判断数组Arr[ ]: 2.继承数组newArr[ ]获取不重复元素 总结 前言 关于一维数组中有重复的元素该怎么剔除,作为java初学 ...
- 编写一个方法,去掉数组中重复元素
方法一:排序后相邻去除法 arr = [1, 2, 5, 1, 3, 7, 9, 5];function unique(arr) {arr.sort();var _arr = [arr[0]];//结 ...
- php判断一维数组中相同元素出现的次数
php中统计一维数组相同元素出现的的次数,可以用php自带的函数array_count_values,用法示例如下: $a =array("A","Cat",& ...
- php 从数组里删除元素,PHP从数组中删除元素的四种方法实例
PHP从数组中删除元素的四种方法实例 一.总结 一句话总结:unset(),array_splice(),array_diff(),array_diff_key() 二.PHP从数组中删除元素的四种方 ...
- JavaScript 删除数组中指定元素(5种方法)
JavaScript 删除数组中指定元素 在 JavaScript 中,数组是一种常见的数据类型,可以存储多个元素.有时候,我们需要从数组中删除某些特定的元素.本文将介绍如何使用 JavaScript ...
- PHP数组函数 count (计算数组中的元素数目)
在PHP中,数组函数 count () 用来计算数组中的元素数目. 函数语法: count ( mixed $array_or_countable [, int $mode = COUNT_N ...
最新文章
- HTML meta标签总结与属性使用介绍
- 同级选择器_基础选择器
- Virtual Machine Manager 2008 2008 R2系列之安装部署
- python打开360浏览器_python selenium使用360浏览器出现新皮肤设置怎么办?
- 码农必读的 7 本计算机书
- Linux 用户管理命令笔记
- Redis的两种备份方式:RDB和AOF
- db2的bufferpool不足报错的快速解决
- ROS入门-6.ROS 命令行工具的使用
- Python Subprocess Popen 管道阻塞问题分析解决
- Kafka分区分配策略(Partition Assignment Strategy
- Qt编写QUI皮肤生成器
- 汇川小型PLC-MODBUS(485)通讯模式
- 不越狱破解A1528 iPhone5s移动联通4G网络
- gnuradio3.8.2的安装步骤
- 【论文阅读】Enhancing Underwater Imagery using Generative Adversarial Networks
- idea用JAVA连接mysqlAccess denied for user ‘root‘@‘localhost‘ (using password: YES)错误
- 51单片机数码管循环显示0 9c语言,如何采用单片机实现数码管循环显示0-9
- PC和DSP通信以及MCU和DSP通信之间的切换
- 我的Linux安装之旅
热门文章
- Android实例开发中如何创建第一个项目(android studio)
- 程序编译是出现field has incomplete type问题的解决
- pandas KeyError [‘1‘] not found in axis 错误的解决方法
- javascript 随机点名
- 对抗网络用于人脸转正--Beyond Face Rotation
- jstatd,VisualVM使用和报错解决:Could not create remote object--java.security.AccessControlException
- 数据库基准测试:database bencnmark --生成大量随机测试数据
- 指定ASP .NET Core Web应用端口
- android五大布局的用法,android:stretchColumns用法
- 编写里Linux命令解释器,linux基础教程试卷及答案