编程问题c语言
#include <stdio.h>#define n 3.141926main(){double r,l,s;printf("请输入这个圆的半径: ");scanf("%f",&r);l=2*n*r;printf("周长等于%f",l);s=n*r*rprintf("面积等于%f",s);return 0;}哪里有问题??
程序能够运行了:
修改后的程序如下:
#include <stdio.h>
#define n 3.141926
int main()
{
double r,l,s;
printf("请输入这个圆的半径:
");
scanf("%lf",&r);
l=2*n*r;
printf("周长等于%f",l);
s=n*r*r;
printf("面积等于%f",s);
return 0;
}
解析:
程序疏忽只在于double型变量只能用%lf在scanf输入(而float变量只能用%f输入)。另外,double变量可以用%f或%lf在printf输出,float变量只能用%f输出。
前面定义的double类型与%f冲突,要么double改float,要么%f全改%lf
s=n*r*r的地方要加上分号:s=n*r*r;
这是初学者常犯的错误,平常可以看看下面的报错信息,双击后错误的一行会变红色,在下面编译结果的地方找到“列”下面对应的数字,找到那一列,进行修改(可以自己看英文找错因)
望采纳
第五行:要么把double改为float
要么,把输出中的%f都改为%lf
另外,第十行少了“;”符号
热门标签: