救赎自我- 发表于 2022-2-22 11:05:19

关于字符串声明的一些问题求教

本帖最后由 救赎自我- 于 2022-2-22 11:07 编辑

请问以下代码中为什么非要声明字符串name为什么直接定义一个char类型变量name不能实现呢还有就是float和double用哪个具体怎么看呢求大佬指点迷津




#include<stdio.h>
int main()
{
      char name;
        float d,e;
       
        printf("请输入您的姓名:");
        scanf("%s",&name);
        printf("请输入您的身高(cm):");
        scanf("%f",&d);
        printf("请输入您的体重(kg):");
        scanf("%f",&e);
       
        printf("========正在为您转换========\n");
       
       
        d = d/2.54;       
        e = e/0.453;
   
    printf("%s的身高是%.2f(in),体重是%.2f(lb)\n",name,d,e);
   


      


}

jhq999 发表于 2022-2-22 11:17:58

scanf("%s",name);

1ytks 发表于 2022-2-22 11:41:04

用字符串 保存输入的数据在后续使用name变量是 也必须做到先定义在使用   float和double都是浮点型数据类型double字节比float长精度也高
一般情况float都是可以适用的

YSW9527 发表于 2022-2-22 23:01:39

本帖最后由 YSW9527 于 2022-2-22 23:03 编辑

如果用char name,那只是一个字符变量,只能存a、b、c这类的一个字节,而中文一个汉字是两个字节也就是说根本存不了名字,就连一个汉字也存不了,char name,就是一个名字为name的字符数组,可以存255字节(因为“\0”结束标记要占一个字节),float和double的区别就是精度不同,float可以精确到小数点后7位,而double是浮点数,它的小数点的位置是“浮动”的,所以很难说double类型能精确到小数点后面几位。通常这个关于精度的问题都是通过它能表示的有效数字(十进制)的位数来表示的,遵循IEEE标准的8字节(64位)的double能表示的有效数字的位数是:15 ~ 16。简单来说double比float精度高
{:10_279:}

hornwong 发表于 2022-2-23 21:32:47

{:5_95:}

jzhjedi 发表于 2022-2-25 09:27:07

顶顶帖子{:10_279:}
页: [1]
查看完整版本: 关于字符串声明的一些问题求教