小编use*_*108的帖子

具有可变数量参数的功能

考虑这个功能

double avg(double v1,double v2,...)
{
    double sum=v1+v2;
    int counter=2;
    double temp;
    va_list pargs;
    va_start(pargs,v2);
    while((temp=va_arg(pargs,double))!=0.0)
    {
        sum+=temp;
        counter++;
    }
    va_end(pargs);
    return sum/counter;
}
Run Code Online (Sandbox Code Playgroud)

此调用printf("%lf\n",avg(3.0,4.5,4.5,3.0,0.0))返回正确的结果,但如果我删除0.0它打印的最后一个参数-321738127312000000000.0000000,但sum和counter具有正确的值.我有点不明白为什么我要检查!=0.0并拥有最后一个参数0.0

c

3
推荐指数
1
解决办法
298
查看次数

将浮点数读入数组

我怎样才能读取 10 个浮点数并将它们存储在一个数组中而不浪费任何内存?

c floating-point floating-point-conversion

2
推荐指数
1
解决办法
1万
查看次数

怎么了?得到()

让我们考虑这两行:

char input[1];
gets(input);
Run Code Online (Sandbox Code Playgroud)

假设输入是"测试".printf("%s \n",输入)=>"test"但是如果我使用调试器,我看到输入[0] ='t'没有输入[1] ......究竟发生了什么?

c

2
推荐指数
2
解决办法
224
查看次数

比较字符串

考虑这段代码

char *pass="test";
int keyPressed;
char *password=(char *)malloc(PASS_LENGTH*sizeof(char));
int index=0;
printf("Enter the password please\n");
do
{
    keyPressed=getch();
    password[index++]=keyPressed;
}
while(keyPressed!=13);
int result=strcmp(pass,password);
Run Code Online (Sandbox Code Playgroud)

我想你明白我想做什么:)
我读*密码"测试"但结果不是0,一些解释会很好:)

c

2
推荐指数
2
解决办法
401
查看次数