1.景点门票。根据游客年龄和普通票价,确定并输出每个人的门票价格,若年龄0-12岁,儿童票10元;若年龄大于等于60岁,老年优惠票三折;其他年龄的学生半价,其余的为普通票价。
int main(){
int age;
double price;
printf("请输入游客年龄及票价:");
scanf("%d %lf",&age,&price);
if(age>0&&age<=12){
price=10.0;
} else if(age>=60){
price=price*0.3;
}else{
printf("游客是否为学生:");
if(toupper(getche())=='Y'){ //读取键盘输入判断是否为学生
printf("\n");
price=price*0.5;
}else{
printf("\n");
}
}
printf("该游客的票价为:%lf",price);
}
注意:double输入格式一定是%lf,否则输出就是0.000000
2.华氏温度转摄氏温度。输入华氏温度,计算并输出摄氏温度,题目给出的公式是c=5/9*(f-32),输出两位小数
int main(){
double f,c;
printf("请输入一个华氏温度f:");
scanf("%lf",&f);
c=5*(f-32)/9; //或c=5/9.0*(f-32)为正确写法。 c=5/9*(f-32)为错误写法,结果为0.0
printf("摄氏温度为:%.2lf",c);
}
注意:计算若为c=5/9*(f-32),输出则为0.00.因为5/9是整数运算,结果是0。 5/9*(f-32) 先计算 5/9,后面无论*什么结果都是0了。
改成(f-32.0)*5.0/9.0 或c=5/9.0*(f-32)就全部都是浮点运算,不会因为整数运算损失小数点后的数据。
3.输入三条边输出三角形面积。
int main(){
double a,b,c,s,area;
printf("输入三角形的三边长:");
scanf("%lf %lf %lf",&a,&b,&c);
if(a+b<=c || a+c<=b || b+c<=a){
printf("输入的边不构成三角形");
}else{
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("三角形的面积是:%lf",area);
}
注意:double、float都是浮点型,double(双精度型)比float(单精度型)存的数据更准确些,占的空间也更大。为了数据精准,最好用double。