c语言 不知道是整形还是实型的时候是用%d还是%f

不知道是整形还是实型的时候是用%d还是%f
不知道是整形还是实型的时候是用%d还是%f

用%f,当输入浮点数时能保证数据精度不丢失,当然整数时也能准确无误表示。
假如用%d,遇到浮点数时,精度就会丢失。

int用%d
float用%f

一开始不知道是整形还是实型 前面定义的时候用什么

引用 皆我百晓生 小程序回复内容作答:
在不知道数据类型的情况下,可以使用通用格式说明符"%g"来打印数字,无论是整数还是浮点数。这个格式说明符将根据输入的值自动选择最合适的表示方式。例如:

int num1 = 10;
float num2 = 3.14;

printf("%g\n", num1);  // 输出: 10
printf("%g\n", num2);  // 输出: 3.14

请注意,这种方法可能会导致一些不一致,因为整数可能会以浮点数的形式显示,但它可以应对你一开始不知道数据类型的情况。如果后续确定了具体的数据类型,可以根据实际需要使用"%d"或"%f"等格式说明符来精确打印。

【相关推荐】




如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

C有泛型选择编程, 但前提必须是支持C11

#include <stdio.h>

int main()
{
    float f = 5.5F;

    if (_Generic(f, int: 0, float: 1))
    {
        printf("%f\n", f);
    }
    else
    {
        printf("%d\n", f);
    }

    int i = 9;
    if (_Generic(i, int: 0, float: 1))
    {
        printf("%f\n", i);
    }
    else
    {
        printf("%d\n", i);
    }

    return 0;
}