您的位置:首页 > 编程语言

C Primer Plus 16章 编程练习第7题

2018-01-14 14:35 357 查看
C语言可变参数 stdarg.h学习;

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

void show_array(const double ar[], int n);
double * new_d_array(int n, ...);

int main()
{
double * p1;
double * p2;

p1 = new_d_array(5, 1.2, 2.3, 3.4, 4.5, 5.6);
p2 = new_d_array(4, 100.0, 20.00, 8.08, -1890.0);

show_array(p1, 5);
show_array(p2, 4);

free(p1);
free(p2);

return 0;
}

void show_array(const double ar[], int n)
{
int i = 0;

if (ar == NULL)
{
printf("不能为空!!!");
return 0;
}

for (i = 0; i < n; ++i)
{
printf(" ar[ %d ] = %f ", i, ar[i]);
}
printf("\n");
}

double * new_d_array(int n, ...)
{
double tic;
va_list ap;
double * array = NULL;
int index;

array = (double *)malloc(n * sizeof(double));
if (array == NULL)
{
printf("array is null!!");
}

va_start(ap, n);

for (index = 0; index < n; ++index)
{
*(array + index) = va_arg(ap, double);
}

va_end(ap);

return array;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言 C Primer Plus