学习C语言,小甲鱼第八课,课后作业动动手1的问题
本帖最后由 liyibo373 于 2022-12-11 21:17 编辑在我学习小甲鱼C语言第一季第八课后,做了课后作业动动手1,然后代码如下:
#include <stdio.h>
int main()
{
char Name;
unsigned charHeight_cm;//在课上听人的身高不大可能超过255,我就把身高定成了unsigned char 的类型
float Weight_kg, Height_in, Weight_lb ;
printf("请输入您的名字:");
scanf("%s",&Name);
printf("请输入您的身高(cm):");
scanf("%hhd",&Height_cm);
printf("请输入您的体重(kg):");
scanf("%f",&Weight_kg);
printf("========== 正在为您转换 ==========\n");
Height_in =Height_cm / 2.54 ;
Weight_lb =Weight_kg * 2.2 ;
printf("%s的身高是%.2f(in),体重是%.2f(lb)\n",Name,Height_in,Weight_lb);
return 0;
}
没想到结果是这样:(由于不能发图片,直接描述了)
最后一句执行的结果是:的身高是66.93(in),体重是152.02(lb)。也就是说,前面的小甲鱼不见了。
然后,我看了看答案,把Height_cm的变量改成int
intHeight_cm;
然后小甲鱼显示就正常了,这是为什么,是不能同时定义两个char吗
没有问题 #include <stdio.h>
int main()
{
char Name;
unsigned charHeight_cm;//在课上听人的身高不大可能超过255,我就把身高定成了unsigned char 的类型
float Weight_kg, Height_in, Weight_lb ;
printf("请输入您的名字:");
scanf("%s",&Name);
printf("请输入您的身高(cm):");
scanf("%hhd",&Height_cm);
printf("请输入您的体重(kg):");
scanf("%f",&Weight_kg);
printf("========== 正在为您转换 ==========\n");
Height_in =Height_cm / 2.54 ;
Weight_lb =Weight_kg * 2.2 ;
printf("%s的身高是%.2f(in),体重是%.2f(lb)\n",Name,Height_in,Weight_lb);
return 0;
}
运行正常,估计是编译环境问题 scanf("%s",&Name);
改成
scanf("%s",Name); jhq999 发表于 2022-12-11 22:06
改成
我的老师说这两种是一样的{:10_277:} zhangjinxuan 发表于 2022-12-12 08:09
我的老师说这两种是一样的
谁知道那个编译器犯病,能标准化,尽量标准化
是不是这个问题让楼主试试不就知道了 jhq999 发表于 2022-12-12 09:57
谁知道那个编译器犯病,能标准化,尽量标准化
是不是这个问题让楼主试试不就知道了
嗯 jhq999 发表于 2022-12-12 09:57
谁知道那个编译器犯病,能标准化,尽量标准化
是不是这个问题让楼主试试不就知道了
不是这个问题,加不加&,不影响结果 实在抱歉,没有找到问题
应该是编译环境错了
您可以给我看看具体是什么错误,或者是去编译器官网进行查看
Dev C++:https://bloodshed-dev-c.en.softonic.com/
Visual Stdio:https://visualstudio.microsoft.com/zh-hans/
如果满意,别忘了点击右下角设置最佳答案
如果还有疑惑,可以再跟帖问我 把Name和Height_cm反过来定义就可以了
#include <stdio.h>
int main()
{
unsigned charHeight_cm;//在课上听人的身高不大可能超过255,我就把身高定成了unsigned char 的类型
char Name;
float Weight_kg, Height_in, Weight_lb ;
printf("请输入您的名字:");
scanf("%s",&Name);
printf("请输入您的身高(cm):");
scanf("%hhd",&Height_cm);
printf("请输入您的体重(kg):");
scanf("%f",&Weight_kg);
printf("========== 正在为您转换 ==========\n");
Height_in =Height_cm / 2.54 ;
Weight_lb =Weight_kg * 2.2 ;
printf("%s的身高是%.2f(in),体重是%.2f(lb)\n",Name,Height_in,Weight_lb);
return 0;
}
页:
[1]