gpt4 book ai didi

c - 使用变量参数无法打印正确的整数

转载 作者:行者123 更新时间:2023-11-30 16:10:55 24 4
gpt4 key购买 nike

需要一些帮助来使用自定义打印函数打印正确的整数值。这是我的代码——出了什么问题?

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

void prints(int n, ...)
{
int i=0;
va_list argument;
va_start(argument, n);
for (i=0; i<n; i++)
{
printf("\n %d", va_arg(argument, int));
}
va_end(argument);
}

int main()
{
prints(5);
return 0;
}

最佳答案

看看你调用函数的方式:

prints(5);

您告诉函数您将提供 5 个整数作为参数,但忽略所有这些整数。得到有趣的结果并不奇怪。使用类似这样的东西,它提供 5 个整数参数:

prints(5, 0, -37, 248, 1239121, -91124887);

例如:

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

static
void prints(int n, ...)
{
va_list args;
va_start(args, n);
for (int i = 0; i < n; i++)
{
printf("%d\n", va_arg(args, int));
}
va_end(args);
}

int main(void)
{
prints(5, 0, -37, 248, 1239121, -91124887);
putchar('\n');
prints(3, 99, 100, 101);
putchar('\n');
prints(1, 3141592);
return 0;
}

输出:

0
-37
248
1239121
-91124887

99
100
101

3141592

关于c - 使用变量参数无法打印正确的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58776758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com