输入的时候,4和8之间的逗号改成空格
因为你的scanf中%lf和%lf之间没有逗号,所以输入的时候,也不能输入逗号,把逗号改成空格即可。
另外,float类型用%f,%lf是double类型,把第5行声明变量的 float 改成double类型。
注意看下面图片中的输入样例:
修改后的代码
#include <stdio.h>
#include <math.h>
int main()
{
double r,h,c,s,v; //这里用double类型
scanf("%lf%lf",&r,&h);
c = 2*3.14*r;
s=3.14*r*r;
v=3.14*r*r*h;
printf("c=%.2lf\ns=%.2lf\nv=%.2lf\n",c,s,v);
return 0;
}
float 类型要用 %f
double 类型才用 %lf
你要么把变量类型改成 double
你要么把%lf改成%f
scanf();在输入数值时要用空格或换行分隔,如 8 6
如果希望输入数值时用逗号分隔,scanf中就要写成"%lf,%lf"
如果要变量类型改成 double
你scanf中"%1f,%1f" 中%之后写的是数字1,应该是小写L
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
关键问题可能在输入的scanf中,同时建议掌握调试的基本方法,可以用断点调试,也可以每步打印处理观察。
#include <stdio.h>
#define PI 3.14
int main()
{
double r, h, c, s, v;
scanf("%lf,%lf", &r, &h);
c = 2.0 * PI * r;
s = PI * r * r;
v = s * h;
printf("c=%.2lf\ns=%.2lf\nv=%.2lf\n", c, s, v);
return 0;
}
$ gcc -Wall main.c
$ ./a.out
4,8
c=25.12
s=50.24
v=401.92