gpt4 book ai didi

c - 这里有什么问题?以及如何修复它

转载 作者:行者123 更新时间:2023-11-30 20:53:06 24 4
gpt4 key购买 nike

int main(void)
{
int a = 65;

char c = (char)a;
int m = 3.0/2;

printf("%c\n", c); // output: A
//printf("this %f\n", 5 / 2); //0.000000
printf("%f\n", (float)a); // output: 65.000000
printf("this %f\n", 5 / 2); //65.0000
printf("%f\n", 5.0 / 2); // output: 2.5000000
//printf("this %f\n", 5 / 2); 2.500
printf("%f\n", 5 / 2.0); // output: 2.5000000
//printf("this %f\n", 5 / 2); 2.5000
printf("%f\n", (float)5 / 2); // output: 2.5000000
//printf("this %f\n", 5 / 2); 2.500
printf("%f\n", 5 / (float)2); // output: 2.5000000
//printf("this %f\n", 5 / 2); 2.5000
printf("%f\n", (float)(5 / 2)); // output: 2.0000000 - we cast only after division and result was 2
//printf("this %f\n", 5 / 2); 2.0000000
printf("%f\n", 5.0 / 2); // output: 2.5000000
//printf("this %f\n", 5 / 2); 2.500
printf("%d\n", m); // output: 1
//printf("this %f\n", 5 / 2); 2.500

system("PAUSE");
return 0;
}

为什么每条评论中写的所有内容都发生了变化,为什么每条评论中都会发生这种变化?例如,在第一条评论中,它是 0.00 为什么会发生这种情况以及如何修复它

最佳答案

问题是您通过使用错误的格式说明符调用未定义的行为。 5/2 将计算为 2,类型为 int,但您使用 %f 来打印它。您应该将 5/2 更改为 5.0/2,使其成为 double 类型,或者使用 %d 打印它>.

printf("this %f\n", 5.0/ 2);

printf("this %d\n", 5 / 2);

关于c - 这里有什么问题?以及如何修复它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53160622/

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