注册 登录
编程论坛 C语言论坛

刚学c语言不懂怎么有问题求解

枉山 发布于 2022-10-09 17:38, 989 次点击

#include<stdio.h>

int main()

{

    double pi=3.1415926;

    double r,h,S,V;

    scanf("%lf%1f",&r,&h);      /*键盘输入圆半径r和高度h*/

    S=pi*pow(r,2);                        /*计算圆面积S的值*/

    V=S*h;                    /*计算圆柱体体积V的值*/

    printf("S=%f\n",S);

    printf("V=%f\n",V);

    return 0;

}
为什么v的值总是为0
2 回复
#2
rjsp2022-10-09 20:00
你用的编译器在编译你这段代码时会给出警告信息吗?
比如
scanf("%lf%1f",&r,&h); 你把字母l写成了数字1 ------ 格式字符串“%1f”需要类型“float *”的参数,但可变参数 2 拥有了类型“double *”
poS=pi*pow(r,2); 使用pow却不#include <math.h> ------ “pow”未定义;假设外部返回 int

程序代码:
#define _USE_MATH_DEFINES
#include <stdio.h>
#include <math.h>

int main( void )
{
    double r, h;
    scanf( "%lf%lf", &r, &h );      /* 键盘输入圆半径r和高度h */

    double s = M_PI*r*r;            /* 计算圆面积S的值 */
    double v = s*h;                 /* 计算圆柱体体积V的值 */
    printf( "S = %f\n", s );
    printf( "V = %f\n", v );
}
#3
枉山2022-10-09 20:29
回复 2楼 rjsp
谢谢!
1