|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
#define pai 3.14
int main()
{
int r;
printf("请输入半径:");
scanf("%d", &r);
printf("正在输出结果------------\n");
float c,s;
c = 2*pai*r;
s = pai*r*r;
printf("半径为%f的圆的面积是:%.2f, 周长是;%.2f\n", r, s, c);
return 0;
}
我知道这里上面用的是int 而打印用的是float类型 那为什么 半径这里打印错误会导致后面的面积和周长也打印错误呢
- #include <stdio.h>
- #define pai 3.14
- int main()
- {
- int r;
- printf("请输入半径:");
- scanf("%d", &r);
-
- printf("正在输出结果------------\n");
-
- float c,s;
-
- c = 2*pai*r;
- s = pai*r*r;
-
- printf("半径为%d的圆的面积是:%.2f, 周长是;%.2f\n", r, s, c);
-
- return 0;
- }
复制代码
改成int 类型 半径 正确打印 后面的面积和周长也正确打印了 ,那到底是为什么会有这样的影响.....
若把%d错写成%f,那么参数就会找错
printf("半径为%f的圆的面积是:%.2f, 周长是;%.2f\n", r, s, c);
格式化字符有三个%f,需要三个浮点数,但是后面有三个参数,第一个是int,会被跳过,把 s 赋值给第一个%f,然后把 c 赋给 %.2f ,最后一个 %.2f ,就没有值了,那么他输出的就可能是一个随机的数值,或者是0.00,这与编译器有关
|
|