心鲜旅人 发表于 2020-3-10 21:35:02

s1e8课后作业最后一个动动手程序运行中出错

当我编译运行该程序时,输入完数据后,进行下一步转换时,电脑弹出了:“0x77clc192”指令引用的“0x00401ea0”内存。该内存不能为“written”
然后就直接结束了。
代码如下:
#include <stdio.h>

int main()
{
        char a;
        double b,c,d,e;
       
        printf("请输入您的姓名:");
        scanf("%s",a);
        printf("请输入您的身高(cm):");
        scanf("%lf",b);
        printf("请输入您的体重(kg):");
        scanf("%lf",c);
        printf("======= 正在为您转换 ==========");
       
        d = b * 0.393700788;
        e = c * 2.20462262;
       
        printf("%s的身高是%lf(in),体重是%lf(lb)。");
       
        return 0;
}
求大神告诉我该怎么办啊。{:10_266:}

major_lyu 发表于 2020-3-10 21:39:27

本帖最后由 major_lyu 于 2020-3-10 21:42 编辑

#include <stdio.h>

int main()
{
      char a;
      double b,c,d,e;
      
      printf("请输入您的姓名:");
      scanf("%s",a);
      printf("请输入您的身高(cm):");
      //scanf("%lf",b);    //scanf读入数据需要给定的是变量的地址,即&b
      scanf("%lf",&b);
      printf("请输入您的体重(kg):");
      //scanf("%lf",c); //同上
      scanf("%lf",&c);
      printf("======= 正在为您转换 ==========");
      
      d = b * 0.393700788;
      e = c * 2.20462262;
      
      printf("%s的身高是%lf(in),体重是%lf(lb)", a, d, e);//printf格式输出要给定对应的变量
      
      return 0;
}

ba21 发表于 2020-3-10 21:40:19

      scanf("%s", &a);

就是要努力呀 发表于 2020-3-10 23:51:32

scand读取非字符串的数据时要加取址符 &
页: [1]
查看完整版本: s1e8课后作业最后一个动动手程序运行中出错