[C语言]利用可变参数列表求平均值。
2016-06-08 00:16
316 查看
题目:设计一个函数可以求任意多个数的平均值(使用可变参数列表)
思路:
利用可变参数列表即可,可变参数列表是通过宏来实现的,这些宏定义在stdarg.h中。注意的是可变参数列表传参时,第一个传的参数的个数。
1.定义一个va_list类型的变量 arg
2.宏va_start(arg,num)---这个宏有两个参数,第一个参数为va_list类型的变量,第二个参数为可变参数列表之前的参数。
作用就是使得 va_list 的变量指向可变参数列表的首地址。这才是一般意义上的对 va_list的初始化。
3.宏va_arg(arg,int) ---第一个参数为va_list类型的变量第二个为参数的类型。
4.宏va_end(arg)---结束标志
思路:
利用可变参数列表即可,可变参数列表是通过宏来实现的,这些宏定义在stdarg.h中。注意的是可变参数列表传参时,第一个传的参数的个数。
1.定义一个va_list类型的变量 arg
2.宏va_start(arg,num)---这个宏有两个参数,第一个参数为va_list类型的变量,第二个参数为可变参数列表之前的参数。
作用就是使得 va_list 的变量指向可变参数列表的首地址。这才是一般意义上的对 va_list的初始化。
3.宏va_arg(arg,int) ---第一个参数为va_list类型的变量第二个为参数的类型。
4.宏va_end(arg)---结束标志
//一个函数可以求任意多个数的平均值(使用可变参数列表) #include<stdio.h> #include<stdlib.h> #include <stdarg.h> int average(int num,...)//第一个参数传的是参数的个数,后面三个点代表可变参数列表 { int sum = 0; va_list arg; //定义一个va_list类型的变量 va_start(arg, num); //宏 va_start for (int i = 0; i < num; i++) { sum += va_arg(arg, int); //宏 va_arg } va_end(arg); //宏 va_end return sum / num; } int main() { int aver = 0; aver = average(10, 1,2, 3, 4, 5, 6, 7, 8, 9,10); //第一参数为个数 printf("%d\n", aver); system("pause"); return 0; }
相关文章推荐
- C++中new和malloc的区别
- C/C++面试遇到的几个知识盲点以及编程问题
- C++实现内存池MemoryPool 包含单线程和多线程
- C++Primer Plus 基础复习
- C++Primer Chapter3课后习题
- 学长的训诫C++
- #1094 : Lost in the City 找到几个当年c语言留下的坑
- 函数指针的正确理解 from C++ Primer Plus P242
- Michael &Scott 无锁队列 C++ 实现
- C++中的虚函数详解
- NDK工具使用,JNI开发
- C++实现多线程全局内存池
- Leetcode_c++:Construct Binary Tree from Preorder and Inorder Traversal(105)
- c++实验7--最大公约数和最小公倍数
- Leetcode_c++: Subsets II (090)
- c++/c 产生随机数
- Leetcode_c++: Merge Sorted Array (088)
- c语言实例之函数求参顺序
- 差分约束系统详解 BZOJ 2330 糖果
- C++ error:LNK2005 已经在*.obj中定义