大学里的小菜鸡 发表于 2019-12-16 16:29:14

关于c的作业代码运行问题

#include <stdio.h>

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

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

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

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

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

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

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

      return 0;
}

输入姓名回车后就出现弹窗错误

jackz007 发表于 2019-12-16 16:53:16

       scanf_s("%s", name);
       改为
       scanf_s("%s", name , 256);

大学里的小菜鸡 发表于 2019-12-16 17:17:54

jackz007 发表于 2019-12-16 16:53
改为

请问加那个256的作用是为了声明name的长度吗

大学里的小菜鸡 发表于 2019-12-16 17:18:50

大学里的小菜鸡 发表于 2019-12-16 17:17
请问加那个256的作用是为了声明name的长度吗

请问加的256的作用是什么,谢谢

大学里的小菜鸡 发表于 2019-12-16 17:22:04

大学里的小菜鸡 发表于 2019-12-16 17:18
请问加的256的作用是什么,谢谢

还有请问一下是在什么情况下才加那个数字,是在是懵逼

大学里的小菜鸡 发表于 2019-12-16 17:23:06

jackz007 发表于 2019-12-16 16:53
改为

请问一下那个数字是在什么情况下才加,加了那个数字的作用是什么,是在是懵逼,感谢

jackz007 发表于 2019-12-16 17:40:09

大学里的小菜鸡 发表于 2019-12-16 17:22
还有请问一下是在什么情况下才加那个数字,是在是懵逼

    那个数字只是在输入字符串、字符等类型的变量内容时才会使用,用于指示保存变量空间容量的大小。

大学里的小菜鸡 发表于 2019-12-16 18:15:10

jackz007 发表于 2019-12-16 17:40
那个数字只是在输入字符串、字符等类型的变量内容时才会使用,用于指示保存变量空间容量的大小。

#include<stdio.h>
#include<math.h>
#define A 3
int main()
{
        float a, b, c; c = 1.0;
        char d;
        scanf_s("%c,%f,%f",&d,1, &a, &b);   //这里的1的意义,为何要用1,不用1会出现编译错误.
        printf("d=%c\nb=%7.1f\na=%7.1f", d, b, a);
        //printf("%d", A);
        return 0;
}
这是我昨天遇到的一个问题,知道了答案,但是不知道那个参数的意义,所以就是如果scanf是单个字符的输入时不用加那个参数的限制,当不是单个字符(连续多个字符输入)或者是字符串的输入的时候才加那个参数限制吗?请问是我这样理解的意思吗?

jackz007 发表于 2019-12-16 19:17:11

大学里的小菜鸡 发表于 2019-12-16 18:15
#include
#include
#define A 3


      是的,只要输入的是非数字内容都要加上。

大学里的小菜鸡 发表于 2019-12-16 19:23:41

jackz007 发表于 2019-12-16 19:17
是的,只要输入的是非数字内容都要加上。

好的,明白了,谢谢{:5_109:}
页: [1]
查看完整版本: 关于c的作业代码运行问题