严凯 发表于 2020-11-15 15:45:44

求助求助

#include <stdio.h>

int main()
{
      char name;
      float height, weight;

      printf("请输入您的姓名:");
      scanf("%s", name);

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

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

      printf("========== 正在为您转换 ==========\n");

      height = height / 2.54; // 厘米转换为英寸
      weight = weight / 0.453; // 公斤转换为磅

      printf("%s的身高是%.2f(in),体重是%.2f(lb)。\n", name, height, weight);

      return 0;
}
//就是哪个char name是什么意思,为什么不能吧name定义为0,然后在scanf("%s",name)的name前面加一个&。
但是我试了一下,打印不出来,说什么name的问题。

风过无痕1989 发表于 2020-11-15 15:51:14

char name 是记录名字的,外国人名字长,所以用了最大的长度 256,咱中国人,三个字,6个字符空间,为保险,10个字符空间足够了

scanf("%s",name),控制符定义是输入字符串,不需要加取地址符 &,若是定义输入单个字符,就必须要加取地址符 &

严凯 发表于 2020-11-15 17:18:03

那如果我输入小甲鱼的三个字,是不是算三个字符?是一个汉字占两个字符位吗?

严凯 发表于 2020-11-15 17:21:24

风过无痕1989 发表于 2020-11-15 15:51
char name 是记录名字的,外国人名字长,所以用了最大的长度 256,咱中国人,三个字,6个字符空间,为 ...

一个数字比如2,80这些算几个字符空间

风过无痕1989 发表于 2020-11-15 17:31:53

严凯 发表于 2020-11-15 17:18
那如果我输入小甲鱼的三个字,是不是算三个字符?是一个汉字占两个字符位吗?

小甲鱼算6个字符

严凯 发表于 2020-11-15 17:38:05

风过无痕1989 发表于 2020-11-15 17:31
小甲鱼算6个字符

大佬,那数字呢,比如1,80这些算几个字符,还有哪个加不加&,我不是很懂

风过无痕1989 发表于 2020-11-15 17:39:10

严凯 发表于 2020-11-15 17:21
一个数字比如2,80这些算几个字符空间

int

int 在32/64位系统中占4个字节,一个字节能含八位二进制数字0/1,四个字节含32位,所以表示的数的范围为-(2的31次方-1)到(2的31次方-1),数字为-2 147 483 647~2 147 483 647.

float

float占四个字节,对于单精度浮点数(float)来说,有一位符号位,指数位共8位,尾数共23位。指数能够表示的指数范围为-128~127。尾数为23位。当尾数全1时再加上小数点前面的1,指数取到最大正数127(8位,正数最大127,负数最小-128),浮点数取得正数的最大值。

double

double占八个字节,Double的计算与此类似,double的符号位为52位,指数为62~52位,共11位。表示的范围为-1024~1023。尾数为51~0。表示的范围为+1.111111111111111111111*2^1023(1.后面52个1)为1.7*10^308。负数亦然。

char

占一个字节
页: [1]
查看完整版本: 求助求助