求助,不知道哪里错了,新手QAQ

题目总版

jingjiayou @ 2024-11-07 15:06:52

#include<stdio.h>
#include<math.h>
int main()
{
    int h,r,t;
    double v;
    scanf("%d %d",&h,&r);
    v=h*r*r*3.14;
    t=(int)(2e4/v+0.5);
    printf("%d",t);
    return 0;
}

by linjinhong @ 2024-11-07 21:30:09

你的代码中有几个问题需要修正:

  1. scanf函数的格式字符串中缺少了r的类型说明符%d,应该是"%d %d"
  2. v变量的类型应该是double,因为你在计算体积时使用了3.14(一个浮点数)。
  3. t变量的类型应该是double,因为你在计算t时使用了2e4(一个浮点数)。
  4. printf函数中t的值应该是%.0f,因为t是一个double类型的值。

下面是修正后的代码:

#include<stdio.h>
#include<math.h>

int main()
{
    int h, r;
    double v, t;
    scanf("%d %d", &h, &r);
    v = h * r * r * 3.14;
    t = (double)(2e4 / v + 0.5);
    printf("%.0f", t);
    return 0;
}

这段代码现在应该可以正确地读取两个整数hr,计算圆柱体的体积,然后计算并输出所需的瓷砖数量。注意,t的值被强制转换为double类型,以确保在计算时不会丢失精度。最后,printf函数使用%.0f来输出t的值,这将确保输出是一个没有小数部分的整数。


|