Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c程序中的输出错误为零_C - Fatal编程技术网

c程序中的输出错误为零

c程序中的输出错误为零,c,C,我正在学习C语言,我决定制作一个文件,一旦用户给出球体的半径,它将计算球体的表面积和体积。但是,当我试图通过键入来编译程序时: gcc-Sphere.c-lm-o-Sphere 当我被提示输入半径时,SA和V输出总是为零。这是怎么回事?我可能忽略了一些简单的事情。这是我的密码: #包括 #包括 双主 { 双rad; 双sa,vol; 常数双pi=3.141592654; printf(“输入球体的半径:\n”); 扫描频率(“%f”、&rad); vol=(4.0/3.0)*pi*(功率(

我正在学习C语言,我决定制作一个文件,一旦用户给出球体的半径,它将计算球体的表面积和体积。但是,当我试图通过键入来编译程序时:

gcc-Sphere.c-lm-o-Sphere
当我被提示输入半径时,SA和V输出总是为零。这是怎么回事?我可能忽略了一些简单的事情。这是我的密码:

#包括
#包括
双主
{
双rad;
双sa,vol;
常数双pi=3.141592654;
printf(“输入球体的半径:\n”);
扫描频率(“%f”、&rad);
vol=(4.0/3.0)*pi*(功率(rad,3));
sa=4.0*pi*(功率(rad,3));
printf(“球体体积为%.3f”,体积);
printf(“\n球体的表面积为:%.3f”,sa);
返回0;
}

您使用了错误的
scanf()
说明符

double
的正确说明符是
“%lf”
,并且
scanf()
返回一个您忽略的值,该值可能导致未定义的行为

另外,
main()
没有您使用的签名,它返回一个
int
,而不是
double
或其他任何东西,因此如果您按以下方式修复,代码将正常工作

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

int main(void)
{
    double rad;
    double sa, vol;
    const double pi = 3.141592654;

    printf("enter the radius of the sphere: \n");
    if (scanf("%lf", &rad) == 1)
    {
        vol = (4.0/3.0)* pi *(pow(rad,3));
        sa = 4.0 * pi * (pow(rad,3));

        printf("Volume of sphere is: %.3f", vol);
        printf("\n Surface area of sphere is: %.3f", sa);
    }
    else
        fprintf(stderr, "Invalid Input\n");

    return 0;

}
这会让你知道你有时可能犯的愚蠢错误

编辑

正如@在下面的评论中所注意到的,表面积公式有一个错误

A=4πr2

你有

A=4πr3


这是错误的。

vim文件究竟是什么
main()
不会返回
double
,用
gcc-Wall-Werror-g3-O0-Sphere.c-o-Sphere-lm
编译你的代码,看你的编译器会对你大喊大叫。
vim
是一个文本编辑器,这是不相关的。@FiddlingBits我知道vim是什么。@iharob个人,我更喜欢
emacs
文件。)我从来没有得到它,我知道有一个emacs命令,虽然我喜欢vim。耶!成功了!是的,我知道我忽略了一些我还没有学到的东西。谢谢。sa=4.0*pi*(功率(rad,3));//这里的错误:(rad,2)不是(rad,3);)@A.S.H是的,它与问题无关,但它是正确的,它必须是平方的,而不是表面积的立方。是的,这不是问题,但我认为它会有用,因为我注意到它也感谢它,尽管我确实注意到,一旦我看到输出。