C语言在线运行

版本:

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
0到100间的奇数 发布于:2024-07-24 16:51 交换两个变量 发布于:2024-07-24 14:53 时间差值计算器 发布于:2024-07-24 14:11 身高换算公式 发布于:2024-07-24 11:21 计算字符串长度 发布于:2024-07-23 20:39 C 水仙花数 发布于:2024-07-23 17:53 水仙花数字 发布于:2024-07-23 16:29 局部变量与全局变量 发布于:2024-07-23 15:07 计算主对角线(从左上角到右下角)元素之和m 和副对角线(从右上角到左下角)元素之和n 发布于:2024-07-23 12:00 mp3转16进制 发布于:2024-07-22 17:45 身高换算公式 发布于:2024-07-22 17:07 圆的周长,圆的面积 发布于:2024-07-22 16:37 hello world 发布于:2024-07-22 09:51 tese专用 发布于:2024-07-23 21:57 厘米换算英尺英寸 发布于:2024-07-21 14:14 加减乘除四则运算 发布于:2024-07-21 10:21 设置变量计算找零 发布于:2024-07-20 22:19 猜一个数,只能提示大于小于或等于 发布于:2024-07-20 15:20 三位数生成 发布于:2024-07-20 12:09 最大公约数 发布于:2024-07-20 11:42 判断x是不是素数 发布于:2024-07-20 09:43 hallo word 发布于:2024-07-20 08:51 sum求和函数 发布于:2024-07-19 11:27 初认识函数 发布于:2024-07-19 10:48 找零计算器 发布于:2024-07-19 01:22 简单的变量 发布于:2024-07-18 10:58 1-n的倒数的相加 发布于:2024-07-18 10:13 一角,二角,五角凑钱(可以试着接力break) 发布于:2024-07-18 09:56 三个数比较大小(调用函数) 发布于:2024-07-17 23:46 三个数比较大小 发布于:2024-07-17 23:48 素数的判断 发布于:2024-07-17 11:33 简单小运算 发布于:2024-07-17 11:24 水仙花数 函数(次方) 发布于:2024-07-16 18:55 计算圆面积 发布于:2024-07-18 14:54 十个数排序 发布于:2024-07-16 15:24 循环结构算数字的位数 发布于:2024-07-16 11:00 分段函数(对) 发布于:2024-07-16 10:35 这是一个可以输入三位正整数,求“逆序数”的简易代码 发布于:2024-07-15 11:12 if语句算时间差 发布于:2024-07-15 10:55 身高英尺换算 发布于:2024-07-15 09:58 runtime risetime downtime 发布于:2024-07-14 20:54 凑钱计算器 发布于:2024-07-14 18:07 素数查找器 发布于:2024-07-14 17:42 **这是一个由起始时间时分组成的整数,求通过流逝时间之后的终止时间的简易代码。** 有时候人们用四位数字表示一个时间,比如 1106 表示 11 点零 6 分。这个代码会根据起始时间和流逝的时间计算出终止时间。 读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 5 点 30 分表示为 530;0 点 30 分表示为 030。注意,第二个数字表示的分钟数可能超过 60,也可能是负数。 输入格式: 输入在一行中给出 2 个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即 5 点 30 分表示为 530;0 点 30 分表示为 030。流逝的分钟数可能超过 60,也可能是负数。 输出格式: 输出不多于四位数字表示的终止时间,当小时为个位数时,没有前导的零。题目保证起始时间和终止时间在同一天内。 发布于:2024-07-14 16:59 给指针赋整型变量的尝试 发布于:2024-07-13 19:59 这是一个整数厘米换算英制长度(英寸英寸)的简易代码 发布于:2024-07-13 17:30 初始原代码 发布于:2024-07-13 17:28 找零的代码 发布于:2024-07-14 10:26 这是一款可以计算“整数找零”的简易代码。 发布于:2024-07-13 16:54 范围内求素数 发布于:2024-07-13 14:03 [更多]
显示目录

可变参数



学习嵌入式的绝佳套件,esp8266开源小电视成品,比自己去买开发板+屏幕还要便宜,省去了焊接不当搞坏的风险。 蜂鸣版+触控升级仅36元,更强的硬件、价格全网最低。

点击购买 固件广场

可变参数

有时,您可能会碰到这样的情况,您希望函数带有可变数量的参数,而不是预定义数量的参数。C 语言为这种情况提供了一个解决方案,它允许您定义一个函数,能根据具体的需求接受可变数量的参数。下面的实例演示了这种函数的定义。

int func(int, ... ) 
{
   .
   .
   .
}

int main()
{
   func(1, 2, 3);
   func(1, 2, 3, 4);
}

请注意,函数 func() 最后一个参数写成省略号,即三个点号(...),省略号之前的那个参数总是 int,代表了要传递的可变参数的总数。为了使用这个功能,您需要使用 stdarg.h 头文件,该文件提供了实现可变参数功能的函数和宏。具体步骤如下:

  • 定义一个函数,最后一个参数为省略号,省略号前面的那个参数总是 int,表示了参数的个数。
  • 在函数定义中创建一个 va_list 类型变量,该类型是在 stdarg.h 头文件中定义的。
  • 使用 int 参数和 va_start 宏来初始化 va_list 变量为一个参数列表。宏 va_start 是在 stdarg.h 头文件中定义的。
  • 使用 va_arg 宏和 va_list 变量来访问参数列表中的每个项。
  • 使用宏 va_end 来清理赋予 va_list 变量的内存。

现在让我们按照上面的步骤,来编写一个带有可变数量参数的函数,并返回它们的平均值:

#include <stdio.h>
#include <stdarg.h>

double average(int num,...) {

    va_list valist;
    double sum = 0.0;
    int i;

    /* 为 num 个参数初始化 valist */
    va_start(valist, num);

    /* 访问所有赋给 valist 的参数 */
    for (i = 0; i < num; i++)     {
        sum += va_arg(valist, int);
    }     /* 清理为 valist 保留的内存 */
    va_end(valist);
    return sum/num;
    }
int main() {
printf("Average of 2, 3, 4, 5 = %f\n", average(4, 2,3,4,5));
printf("Average of 5, 10, 15 = %f\n", average(3, 5,10,15));
}

尝试一下

当上面的代码被编译和执行时,它会产生下列结果。应该指出的是,函数 average() 被调用两次,每次第一个参数都是表示被传的可变参数的总数。省略号被用来传递可变数量的参数。

Average of 2, 3, 4, 5 = 3.500000
Average of 5, 10, 15 = 10.000000
由JSRUN为你提供的C语言在线运行、在线编译工具
        JSRUN提供的C语言 在线运行,C语言 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。
yout