新医霍汶希 发表于 2021-5-15 20:51:24

S1E8身高体重转换

1.为什么char name后面跟256?写255也不影响结果的
2.为什scanf体重的时候多加%.1f的限制,就printf不会出来体重呢?
#include<stdio.h>
int main()
{
        char name;
        float height,weight;
       
        printf("请输入您的姓名:");
        scanf("%s",&name);
       
        printf("请输入您的身高:");
        scanf("%f",&height);
       
        printf("请输入你的体重:");
        scanf("%.1f",&weight);
       
        printf("========== 正在为您转换 ==========\n");
       
        height = height / 2.54; // 厘米转换为英寸
    weight = weight / 0.453; // 公斤转换为磅
   
    printf("%s的身高为%.2f,体重为%.2f",name,height,weight);
        return 0;
}

Stubborn 发表于 2021-5-15 21:20:31

本帖最后由 Stubborn 于 2021-5-15 21:24 编辑

{:10_285:}是甲鱼哥没讲嘛
char name后面跟256?通俗的说256指数据的大小,整个name可以存放 256 个字节的数据, char 1 字节* 256. 。名字短你不加256都得
为什scanf体重的时候多加%.1f的限制。 %.1f 是打印格式化的符号, 这整个表明是输出一个浮点数,保留一位小数
可以写成scanf("%2f");这是设置域宽,

新医霍汶希 发表于 2021-5-16 16:47:13

Stubborn 发表于 2021-5-15 21:20
是甲鱼哥没讲嘛
char name后面跟256?通俗的说256指数据的大小,整个name可以存放 256 个字节 ...

我输入59.1是符合设置的限制的,但是printf却出现了错误,这点没咋懂

Stubborn 发表于 2021-5-16 21:17:46

新医霍汶希 发表于 2021-5-16 16:47
我输入59.1是符合设置的限制的,但是printf却出现了错误,这点没咋懂


scanf("%.1f",&weight);   这种是错误的,scanf没有%.1f格式,可以写成scanf("%2f");这是设置域宽,
页: [1]
查看完整版本: S1E8身高体重转换