鱼C论坛

 找回密码
 立即注册
查看: 93|回复: 2

[已解决]为什么我这段代码,输入的时候只能读取到字符,后面的数字就无了

[复制链接]
发表于 2024-4-12 14:13:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
int main ()
{
        char nm[256];
        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;

}
最佳答案
2024-4-12 15:47:12
  1. #include <stdio.h>
  2. int main(void)
  3. {
  4.         char nm[256];
  5.         float h,w,lb,in;
  6.         scanf("%s,%f,%f",&nm,&h,&w);                          // 数据输入在前 , nm 前面不用加取址符
  7.         lb=w*2.2046226;
  8.         in=h*0.3937007;
  9.         printf("请输入您的姓名:%s\n",nm);                    // 输入提示在后
  10.         printf("请输入您的身高(cm):%f\n",h);                 // 输入提示在后
  11.         printf("请输入您的体重(kg):%f\n",w);                 // 输入提示在后
  12.         printf("======= 正在为您转换 =======");
  13.         printf("%s的身高是%f(in),体重是%f(lb)\n",nm,in,lb) ;
  14.         return 0;
  15. }
复制代码
C语言.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-4-12 14:13:35 | 显示全部楼层
在你的代码中,你定义了一个字符变量 `nm` 来存储姓名,但是使用 `%s` 格式化字符串时,应该传入一个字符数组来存储字符串。

此外,你还需要删除 `&` 操作符,因为字符数组本身就是一个指针。

以下是修改后的代码:

  1. #include <stdio.h>

  2. int main()
  3. {
  4.     char nm[50]; // 定义一个字符数组来存储姓名
  5.     float h, w, lb, in;
  6.     printf("请输入您的姓名:");
  7.     scanf("%s", nm); // 使用字符数组接收姓名

  8.     printf("请输入您的身高(cm):");
  9.     scanf("%f", &h);

  10.     printf("请输入您的体重(kg):");
  11.     scanf("%f", &w);

  12.     lb = w * 2.2046226;
  13.     in = h * 0.3937007;

  14.     printf("======= 正在为您转换 =======\n");
  15.     printf("%s的身高是%f(in),体重是%f(lb)\n", nm, in, lb);

  16.     return 0;
  17. }
复制代码


现在你可以输入字符和数字组成的姓名了,而且可以正确地读取身高和体重值。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-12 15:47:12 | 显示全部楼层    本楼为最佳答案   
  1. #include <stdio.h>
  2. int main(void)
  3. {
  4.         char nm[256];
  5.         float h,w,lb,in;
  6.         scanf("%s,%f,%f",&nm,&h,&w);                          // 数据输入在前 , nm 前面不用加取址符
  7.         lb=w*2.2046226;
  8.         in=h*0.3937007;
  9.         printf("请输入您的姓名:%s\n",nm);                    // 输入提示在后
  10.         printf("请输入您的身高(cm):%f\n",h);                 // 输入提示在后
  11.         printf("请输入您的体重(kg):%f\n",w);                 // 输入提示在后
  12.         printf("======= 正在为您转换 =======");
  13.         printf("%s的身高是%f(in),体重是%f(lb)\n",nm,in,lb) ;
  14.         return 0;
  15. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-2 16:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表