为什么 scanf 需要两个数字?
Why does scanf expect two numbers?
我想让程序获取用户的身高和体重,然后将其输入到 bmi 公式中,然后输出结果。
身高问题没问题,但是当您在体重问题中输入一个数字并按回车键时,它只会换行。输入另一个数字后,它会将其设置为 bmi
并打印出来。
#include<stdio.h>
int main()
{
int h, w, bmi;
printf("What is your height (in inches)? ");
scanf("%d", &h);
printf("What is your weight? ");
scanf("%d", &w);
bmi = (w/(h*h))*703;
scanf("%d", &bmi);
printf("\t\tBMI\n");
printf("US: %d\n", bmi);
}
删除 scanf("%d", &bmi);
您为 bmi
设置的值,然后要求它的值作为输入!
您对所有三个变量都使用了 int。因此,当您将 w(体重)除以 h(身高)的平方时,通常会得到结果 0.xxxxxx。但是在这里你将这个结果存储在一个整数变量中,但它不能存储那个浮点值。所以它只存储0,然后0乘以703,这没有用。
并且您已经定义了 int 类型的主函数,因此它必须 return 一个值。
改用此代码
#include<stdio.h>
int main()
{
float h, w, bmi;
printf("What is your height (in inches)? ");
scanf("%f", &h);
printf("What is your weight? ");
scanf("%f", &w);
bmi=((w/(h*h))*703);
printf("US: %f\n", bmi);
return 0;
}
我想让程序获取用户的身高和体重,然后将其输入到 bmi 公式中,然后输出结果。
身高问题没问题,但是当您在体重问题中输入一个数字并按回车键时,它只会换行。输入另一个数字后,它会将其设置为 bmi
并打印出来。
#include<stdio.h>
int main()
{
int h, w, bmi;
printf("What is your height (in inches)? ");
scanf("%d", &h);
printf("What is your weight? ");
scanf("%d", &w);
bmi = (w/(h*h))*703;
scanf("%d", &bmi);
printf("\t\tBMI\n");
printf("US: %d\n", bmi);
}
删除 scanf("%d", &bmi);
您为 bmi
设置的值,然后要求它的值作为输入!
您对所有三个变量都使用了 int。因此,当您将 w(体重)除以 h(身高)的平方时,通常会得到结果 0.xxxxxx。但是在这里你将这个结果存储在一个整数变量中,但它不能存储那个浮点值。所以它只存储0,然后0乘以703,这没有用。
并且您已经定义了 int 类型的主函数,因此它必须 return 一个值。
改用此代码
#include<stdio.h>
int main()
{
float h, w, bmi;
printf("What is your height (in inches)? ");
scanf("%f", &h);
printf("What is your weight? ");
scanf("%f", &w);
bmi=((w/(h*h))*703);
printf("US: %f\n", bmi);
return 0;
}