就是要努力呀 发表于 2019-4-7 23:27:06

s1e8求解

本帖最后由 就是要努力呀 于 2019-4-7 23:29 编辑

求解为什么会有乱码,而且算出来的 high和weight也不对
#include<stdio.h>

int main()
{
       
        printf("名字:");
        unsigned char name[] = {scanf("%s",&name),'\0'};
       
        printf("身高(cm):");
        float high = {scanf("%f",&high)};
       
        printf("体重(kg):");
        float weight = {scanf("%f",&weight)};
       
        printf("以下是转换结果\n");
       
        weight = weight / 0.453;
        high = high / 2.54;
       
        printf("%s的身高是%f(in),体重是%f(lb)。\n", name, high, weight);
       
        return 0;
}

Croper 发表于 2019-4-7 23:33:30

unsigned char name[] = {scanf("%s",&name),'\0'}这是什么神仙用法
scanf的返回值是正确输入的参数的个数,别想当然
unsigned char name;
scanf("%s",&name);

后面几项一样的改

就是要努力呀 发表于 2019-4-7 23:36:09

Croper 发表于 2019-4-7 23:33
这是什么神仙用法
scanf的返回值是正确输入的参数的个数,别想当然



scanf不能这样用呀。。{:5_99:},谢谢大佬

就是要努力呀 发表于 2019-4-7 23:37:05

Croper 发表于 2019-4-7 23:33
这是什么神仙用法
scanf的返回值是正确输入的参数的个数,别想当然



为什么name【】要加128也

Croper 发表于 2019-4-7 23:42:22

就是要努力呀 发表于 2019-4-7 23:37
为什么name【】要加128也

申请足够大的内存空间而已。。
128个字节可以装63个汉字,储存名字应该是足够了

就是要努力呀 发表于 2019-4-7 23:44:39

Croper 发表于 2019-4-7 23:42
申请足够大的内存空间而已。。
128个字节可以装63个汉字,储存名字应该是足够了

但是不是【】为空的话系统会自动读取有多少字符吗

Croper 发表于 2019-4-7 23:53:02

[]是指让编译器根据初始化的值决定数组的大小,
在使用[]时必须在声明的时候同时初始化

int a[]={1,2,3,4,5};
那么生成的数组大小就是5
和int a={1,2,3,4,5};效果一样

就是要努力呀 发表于 2019-4-8 09:03:18

哦懂了谢谢
页: [1]
查看完整版本: s1e8求解