求大神解决本人在编程初期遇到的问题!!急! 下面的程序运行后怎么输出0!!这是一个求π的近似值的问题

2025-03-26 14:30:44
推荐回答(1个)
回答1:

你没有做数值类型转换。
标准C中,表达式中,如果原始类型的取值范围都能用signed int型表示,则其类型被提升为signed int,如果原始类型的取值范围用signed int型表示不了,则提升为unsigned int型。,例如在KEIL中,就有这个选项ENABLE ANSI INTEGER PROMOTION RULES,我不知道你是用什么编译器,如果是ANSI C的话,1/n,当n为int型时,这个表达式必定是0。
你可以强制转换为(double float)1/(double float)n