为什么我这段代码,输入的时候只能读取到字符,后面的数字就无了
#include <stdio.h>int main ()
{
char nm;
float h,w,lb,in;
scanf("%s,%f,%f",&nm,&h,&w);
lb=w*2.2046226;
in=h*0.3937007;
printf("请输入您的姓名:%s\n",nm);
printf("请输入您的身高(cm):%f\n",h);
printf("请输入您的体重(kg):%f\n",w);
printf("======= 正在为您转换 =======");
printf("%s的身高是%f(in),体重是%f(lb)\n",nm,in,lb) ;
return 0;
}
在你的代码中,你定义了一个字符变量 `nm` 来存储姓名,但是使用 `%s` 格式化字符串时,应该传入一个字符数组来存储字符串。
此外,你还需要删除 `&` 操作符,因为字符数组本身就是一个指针。
以下是修改后的代码:
#include <stdio.h>
int main()
{
char nm; // 定义一个字符数组来存储姓名
float h, w, lb, in;
printf("请输入您的姓名:");
scanf("%s", nm); // 使用字符数组接收姓名
printf("请输入您的身高(cm):");
scanf("%f", &h);
printf("请输入您的体重(kg):");
scanf("%f", &w);
lb = w * 2.2046226;
in = h * 0.3937007;
printf("======= 正在为您转换 =======\n");
printf("%s的身高是%f(in),体重是%f(lb)\n", nm, in, lb);
return 0;
}
现在你可以输入字符和数字组成的姓名了,而且可以正确地读取身高和体重值。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 #include <stdio.h>
int main(void)
{
char nm;
float h,w,lb,in;
scanf("%s,%f,%f",&nm,&h,&w); // 数据输入在前 , nm 前面不用加取址符
lb=w*2.2046226;
in=h*0.3937007;
printf("请输入您的姓名:%s\n",nm); // 输入提示在后
printf("请输入您的身高(cm):%f\n",h); // 输入提示在后
printf("请输入您的体重(kg):%f\n",w); // 输入提示在后
printf("======= 正在为您转换 =======");
printf("%s的身高是%f(in),体重是%f(lb)\n",nm,in,lb) ;
return 0;
}
页:
[1]