题目描述:
每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。小孩成人后身高与其父母身高和自身性别密切相关。设faHeight为其父身高,moHeight为其母身高,身高预测公式为: ? 男性成人时身高 = (faHeight + moHeight) * 0.54(cm) ? 女性成人时身高 = (faHeight * 0.923 + moHeight) / 2(cm) 此外,如果喜爱体育锻炼,那么可增加身高2%,如果有良好的卫生饮食习惯,那么可增加身高1.5%。编程从键盘输入你的性别(用字符型变量存储,输入字符f表示女性,输入字符m表示男性)、父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高)、是否喜爱体育锻炼(用字符型变量存储,输入字符y表示喜爱,输入字符n表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量存储,输入字符y表示喜爱,输入字符n表示不喜爱),利用给定公式和身高预测方法对你的身高进行预测。
输入描述:
从键盘输入性别、父母身高、是否喜爱体育锻炼、是否有良好的饮食习惯等条件。
输出描述:
身高(cm)。
样式输入:
f 165 155 y y
样式输出:
159.07
问题描述
#include <stdio.h>
void main()
{
float faHeight=0,moHeight=0;
float Height=0;
char sex,sport,food;
getchar(sex);
scanf("%f",&faHeight);
scanf("%f",&moHeight);
getchar(sport);
scanf("%c",&sport);
getchar(food);
scanf("%c",&food);
if (sex=='f')
Height=(faHeight * 0.923 + moHeight)/2;
else if (sex=='m')
Height=(faHeight + moHeight) * 0.54;
// (sex=='f')?(Height=faHeight * 0.923 + moHeight) / 2:(Height=(faHeight + moHeight) * 0.54)
// (sport=='y')?(Height*0.02):(Height=Height);
// (food=='y')?(Height*0.015):(Height=Height);/*问题2*/
if (sport=='y')
Height=Height*0.02;
if (food=='y')
Height=Height*0.015;
printf("%.2f",Height);
}
那么问题来了
getchar()怎么用啊
问题二处,如果想使用条件运算符,不想用if怎么修改。
程序应该怎么修改才正确
会用if,但是想用条件运算符写。上面的三个if怎么用条件运算符表示啊????2.问题是OJ说答案错误啊?…
还有输入的时候最后的y
y回车怎么打啊
用scanf(/*)??
追答可以用条件运算符,不知道你说的是是将三个if组合在一起用三目运算符还是分开?
追问可以都说一下不,不怎么懂,总是出错……
追答说第一个吧
if (sex=='f')
Height=(faHeight * 0.923 + moHeight)/2;
else if (sex=='m')
Height=(faHeight + moHeight) * 0.54;
(sex<='f')?(Height=(faHeight * 0.923 + moHeight)/2):(Height=(faHeight + moHeight) * 0.54)