依次输入F 182 162 N Y 输入的结果是165.0cm预期结果应该是167.5cm,要怎么改才能输出预期的结果希望有人能解答一下
#include
#define fh faHeight
#define mh moHeight
#define s sports
#define d diet
int main()
{
float fh, mh, H;
char sex, s, d;
scanf("%c%f%f%c%c", &sex, &fh, &mh, &s, &d);
if (sex == 'M' || sex == 'm') {
H = (fh + mh) * 0.54;
}
else if (sex == 'F' || sex == 'f'){
H = (fh * 0.923 + mh) / 2.0;
}
if (s == 'Y' || s == 'y') {
H *= 1.02;
}
if (d == 'Y' || d == 'y') {
H *= 1.015;
}
printf("%.1fcm\n", H);
}
输入改为F 182 162NY
162 N Y之间的空格要删掉
或者输入不变,但scanf语句改为
scanf("%c%f%f %c %c", &sex, &fh, &mh, &s, &d);
scanf("%c%f%f%c%c", &sex, &fh, &mh, &s, &d);
改成
scanf("%c", &sex);
getchar();
scanf("%f", &fh);
getchar();
scanf("%f", &mh);
getchar();
scanf("%c", &s);
getchar();
scanf("%c", &d);
getchar();