gpt4 book ai didi

卡宿醉C

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

我正在尝试解决这个问题:http://poj.org/problem?id=1003

    #include <stdio.h>

int c;
int a = 0;
int i;


int main()
{
scanf("%.2f", &c);
if (0.01 <= c <= 5.20){
for (i = 1; a < c; ++i){
a += (1/(i + 1));
}
printf("%d card(s)", i + 1);
}
return 0;
}

我的代码不起作用?由于某种原因,无论我输入什么,它总是返回 2 张卡。有人能找出问题所在吗?

谢谢!

最佳答案

问题 1:这不是测试变量是否位于两个值之间的方法:

    if (0.01 <= c <= 5.20){

正确的做法是

    if (0.01 <= c && c <= 5.20){

您的代码将被解释为就像您编写的:

    if ((0.01 <= c) <= 5.20){

(0.01 <= c)将是 01 ,并且这两个值均小于 5.20 ,所以它总是正确的。

问题 2:变量 ac需要float ,不是int ,因为int变量中不能有分数,并且 %f格式为scanf要求相应的参数是指向 float 的指针.

关于卡宿醉C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36487621/

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