a-_- 发表于 2021-5-17 23:28:12

C语言,sle8的动动手1,请大佬看看哪儿不对。

a-_- 发表于 2021-5-17 23:36:46

知道了,name后面没加【256】,为什么要加这个?

a-_- 发表于 2021-5-17 23:43:35

因为它要表示是一个,字符串吗?那为什么不写不行?只写个'[]'

孤世星辰 发表于 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?mod=viewthread&tid=67391&extra=page%3D1%26filter%3Dtypeid%26typeid%3D583

肖-肖 发表于 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;
}

肖-肖 发表于 2021-5-18 14:36:26

第二种方法:解释同样在注释中,这个使用数组接收,也已经测试过了是可以的
代码如下
#include <stdio.h>

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

    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;
}

a-_- 发表于 2021-5-18 16:19:04

好的,谢谢你啦

a-_- 发表于 2021-5-18 16:19:45

好,谢谢你啦

a-_- 发表于 2021-5-18 16:21:17

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

好,谢谢你啦

a-_- 发表于 2021-5-18 16:22:05

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

好的,谢谢你啦
页: [1]
查看完整版本: C语言,sle8的动动手1,请大佬看看哪儿不对。