现在的位置: 首页 > 例题 > 正文

奇怪的错误

2011年03月31日 例题 ⁄ 共 834字 ⁄ 字号 暂无评论

简单的计算就出错了

题目描述:

设圆半径r,圆柱高h 求圆周长C1、圆面积Sa、圆球表面积Sb、圆球体积Va、圆柱体积Vb。 用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 PI=3.14

输入

两个浮点数,r和h

输出

C1=9.42
Sa=7.07
Sb=28.26
Va=14.13
Vb=21.19

提示:需要注意输出的字母的大小写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
int main(int argc, char *argv[])
{
    float r,h,C1,Sa,Sb,Va,Vb;  
    scanf("%f %f",&r,&h);  
    C1=2*3.14*r;  
    Sa=3.14*r*r;  
    Sb=4*Sa;  
    Va=4*3.14*r*r*r/3;  
    Vb=Sa*h;  
    printf("C1=%.2fn",C1);  
    printf("Sa=%.2fn",Sa);  
    printf("Sb=%.2fn",Sb);  
    printf("Va=%.2fn",Va);  
    printf("Vb=%.2fn",Vb=Sa*h); 
 
    return 0;
}

请注意最后一个打印输出:
如果是 printf("Vb=%.2fn", Vb=Sa*h); 结果就是 21.20
如果是 printf("Vb=%.2fn",Vb); 结果就是 21.19

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main(int argc, char *argv[])
{
    double r,h,C1,Sa,Sb,Va,Vb;
    scanf ("%lf%lf",&r,&h);
    printf("C1=%.2lfn",C1=2.0*3.14*r);
    printf("Sa=%.2lfn",Sa=r*3.14*r);
    printf("Sb=%.2lfn",Sb=4.0*3.14*r*r);
    printf("Va=%.2lfn",Va=4.0*3.14*r*r*r/3);
    printf("Vb=%.2lfn",Vb=h*3.14*r*r);
    return 0;
}

在Windows下编译,结果 Sa结果是7.06,而在Linux编译,结果是7.07

【上篇】
【下篇】

抱歉!评论已关闭.