鱼C论坛

 找回密码
 立即注册
查看: 2080|回复: 9

[已解决]C语言,sle8的动动手1,请大佬看看哪儿不对。

[复制链接]
发表于 2021-5-17 23:28:12 | 显示全部楼层 |阅读模式

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

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

x
屏幕截图 2021-05-17 232109.png 屏幕截图 2021-05-17 232216.png
最佳答案
2021-5-18 14:32:57
第一种解决办法:解释再注释中 已经测试过了是可以的
代码如下
#include <stdio.h>

int main()
{
    float tall,weight;
    char name;//第一种这里不变下边变

    printf("请输入您的名字:");
    scanf("%c",&name);//这里变%c

    printf("请输入您的身高(cm):");
    scanf("%f",&tall);

    printf("请输入您的体重(kg):");
    scanf("%f",&weight);

    printf("========正在为您计算==========\n");

    tall = tall/2.54;
    weight = weight / 0.453;

    printf("%c的身高是%.2f(in),体重是%.2f(lb).\n",name,tall,weight);//这里也变成%c
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-5-17 23:36:46 | 显示全部楼层
知道了,name后面没加【256】,为什么要加这个?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-17 23:43:35 | 显示全部楼层
因为它要表示是一个,字符串吗?那为什么不写不行?只写个'[]'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-18 11:27:38 | 显示全部楼层
因为你scanf 的%s是要求输入字符串,但是你的name是char(字符)类型,类型不匹配就会出错,改成char name【】这是字符串数组,就OK了,应该是不可以不写,除非你一开始就自己初始化,然后编译器就会自己帮你计算长度你可以看一下
https://fishc.com.cn/thread-67468-1-2.html
https://fishc.com.cn/forum.php?m ... peid%26typeid%3D583
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-18 14:32:57 | 显示全部楼层    本楼为最佳答案   
第一种解决办法:解释再注释中 已经测试过了是可以的
代码如下
#include <stdio.h>

int main()
{
    float tall,weight;
    char name;//第一种这里不变下边变

    printf("请输入您的名字:");
    scanf("%c",&name);//这里变%c

    printf("请输入您的身高(cm):");
    scanf("%f",&tall);

    printf("请输入您的体重(kg):");
    scanf("%f",&weight);

    printf("========正在为您计算==========\n");

    tall = tall/2.54;
    weight = weight / 0.453;

    printf("%c的身高是%.2f(in),体重是%.2f(lb).\n",name,tall,weight);//这里也变成%c
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-18 14:36:26 | 显示全部楼层
第二种方法:解释同样在注释中,这个使用数组接收,也已经测试过了是可以的
代码如下
#include <stdio.h>

int main()
{
    float tall,weight;
    char name[66]=" ";//第二种这里变成数组

    printf("请输入您的名字:");
    scanf("%s",name);//这里变%s

    printf("请输入您的身高(cm):");
    scanf("%f",&tall);

    printf("请输入您的体重(kg):");
    scanf("%f",&weight);

    printf("========正在为您计算==========\n");

    tall = tall/2.54;
    weight = weight / 0.453;

    printf("%s的身高是%.2f(in),体重是%.2f(lb).\n",name,tall,weight);//这里也变成%s
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-18 16:19:04 | 显示全部楼层
好的,谢谢你啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-18 16:19:45 | 显示全部楼层
好,谢谢你啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-18 16:21:17 | 显示全部楼层
肖-肖 发表于 2021-5-18 14:36
第二种方法:解释同样在注释中,这个使用数组接收,也已经测试过了是可以的
代码如下

好,谢谢你啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-18 16:22:05 | 显示全部楼层
孤世星辰 发表于 2021-5-18 11:27
因为你scanf 的%s是要求输入字符串,但是你的name是char(字符)类型,类型不匹配就会出错,改成char name ...

好的,谢谢你啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 11:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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