第1关:任务02-03-01 麦子丰收了
任务描述
小白弟弟家乡的小麦丰收了,收获后的小麦被堆成一个底面圆柱形的粮仓。经测量后得知底面半径为r米,粮仓的高为h米。 假设一立方米麦子重450公斤,请你算一算这堆小麦有多少公斤。 假设每吨小麦的价格是3500元,这堆小麦价值多少元呢。 提示:题目中涉及到圆周率时,取π=3.14159265。
输入格式:
程序输入为两个实数,表示粮仓的底面半径和高。
输出格式:
输出两个实数,即小麦的重量和价值(单位:元),保留到小数点后4位。
输入样例:
1.5 2.5
输出样例:
7952.1564 27832.5474
任务代码
#include<stdio.h>
#define PI 3.14159265
int main(){
double r,h,v;
scanf("%lf%lf",&r,&h);
v=PI*r*r*h;
printf("%.4lf %.4lf",v*450.,v*450.00*3.5);
return 0;
}
相关知识-实型常量的表示
实型常量用十进制表示,有如下两种表示方法: 小数形式:3.14159265、-0.618等等。其中小数点前或后的唯一0可以省略,但不能全省略,例如100.、.618、-.618、.0、0.等等都是合法的表示方法。 指数形式:当一个实数很小或很大时,用小数形式表示起来就十分困难,而用指数形式表示则很方便,其格式为:±尾数部分E±指数部分 (E也可小写) 例如:-1.2e+2表示-1.2×102、1.32E-2表示1.32×10-2等等,e或E前后必须都有数字,且E后必须为整数。 不加后缀说明的所有实型常量都被解释成double类型;在实型常量后加上字符f或F后缀,可以将其说明为float类型;在实型常量后加上字符l或L后缀,可以将其说明为long double类型。 例如,常量3.14159265是double类型, 常量3.14159265F就是float类型,常量3.14159265L就是long double类型。
相关知识-符号常量
定义符号常量的格式为:#define 符号常量标识符 值 程序中指令#define PI 3.14159265的意义是定义一个符号常量PI,其值是3.14159265。这样在程序中就可以使用PI来进行运算了。 符号常量的值一经定义,不允许改变。符号常量的定义属于编译预处理指令,通常放在主函数外的程序开始处。实质上是在程序正式编译之前的预处理时,将程序中的所有PI都替换成3.14159265,然后再编译执行。也就是说,符号常量的实质是正式编译前预处理时的替换。
代码分析
1.程序中的3.14159265、450.、450.00、3.5都是合法的实型常量,标识符PI是符号常量。 2.语句double r,h,v;的功能是定义3个double型的变量r,h和v。 3.语句scanf("%lf%lf",&r,&h);的功能是输入2个实数,赋值给变量r和h。%lf是实型数据格式说明符,此处用于输入实数。 4.语句v=PI*r*r*h;
的功能是将表达式PI*r*r*h
的值赋给左侧的变量v
。 5.语句printf("%.4lf %.4lf",v*450.,v*450.00*3.5);
的功能是输出格式字符串"%.4lf %.4lf"
的内容。 %lf
用于输出实型数据,默认输出6位小数,%.4lf
在输出实型数据时保留4位小数。 语句首先输出v*450.
的值,再原样输出一个空格,再输出表达式v*450.00*3.5
的值。
开始你的任务吧,祝你成功!
参考代码:
#include<stdio.h>
#define PI 3.14159265
int main(){
double r,h,v;
scanf("%lf%lf",&r,&h);
v=PI*r*r*h;
printf("%.4lf %.4lf",v*450.,v*450.00*3.5);
return 0;
}
第2关:任务02-03-02 男性标准体重
任务描述:
根据世界卫生组织推荐的计算方法,男性标准体重计算方法为(身高cm-80)×70%。 本题目要求读入1个表示某男性身高的实数(单位为米,小数点最多2位),输出此人的标准体重,小数点后保留2位。
输入格式:
输入只有一行,1个实数。
输出格式:
在一行中输出标准体重结果,结果后输出KG。
输入样例:
1.85
输出样例:
73.50KG
开始你的任务吧,祝你成功!
参考代码:
//请在此输入你的代码
#include<stdio.h>
int main(){
double a,b;
scanf("%lf",&a);
b=(a*100-80)*0.7;
printf("%.2lfKG",b);
return 0;
}
第3关:任务02-03-03 实数运算
任务描述
本题目要求读入2个实数,然后分别输出这2个数的和和乘积。
输入格式:
输入只有一行,2个实数用空格分开。
输出格式:
在一行中输出两个值,中间以1个空格分隔,每个值保留小数点后 3位。
输入样例:
3.14159 2.71828
输出样例:
5.860 8.540
提示
题目中的数据请定义double型,输出实型数据时可用%.3lf格式来控制只输出3位小数。
开始你的任务吧,祝你成功!
参考代码:
//请在此输入你的代码
#include<stdio.h>
int main(){
double a,b,c,d;
scanf("%lf%lf",&a,&b);
c=a+b;
d=a*b;
printf("%.3lf %.3lf",c,d);
return 0;
}
第4关:任务02-03-04 计算圆的面积
任务描述
本题目要求读入1个表示圆半径的实数,输出这个圆的面积。程序中的圆周率请取值3.14159265。
输入格式:
输入只有一行,1个实数。
输出格式:
在一行中输出结果,保留小数点后4位。
输入样例:
1.0
输出样例:
3.1416
提示
输出实型数据时可用%.3lf格式来控制只输出3位小数。
开始你的任务吧,祝你成功!
参考代码:
//请在此输入你的代码
#include<stdio.h>
#define PI 3.14159265
int main(){
double r,s;
scanf("%lf",&r);
s=PI*r*r;
printf("%.4lf",s);
return 0;
}