转会但姿势丶 发表于 2020-2-18 14:40:57

关于scanf的问题

本帖最后由 转会但姿势丶 于 2020-2-18 14:48 编辑

《带你学C带你飞》S1E8   字符和字符串   课后作业      编译器:Dev-C++
在用printf时用scanf遇到一些问题,你们先看一下代码:

static/image/hrline/line7.png

#include <stdio.h>

int main()
{
        char name;
        float cm;
        float in;
        float kg;
        float lb;
       
        printf("请输入您的名字:");
        scanf("%s", &name);
        printf("请输入您的身高:");
        scanf("%f", &cm);
        printf("请输入您的体重:");
        scanf("%f", &kg);
        printf("========== 正在为您转换 ==========\n");
        printf("%s的身高是%f(in),体重是%f(lb)。", name, cm, kg);
       
        return 0;
       
}

static/image/hrline/line7.png

想问的问题就在就在最后一行的printf,我在上面已经用scanf弄了name、cm和kg的变量值,前面运行没什么毛病为什么到最后一行printf那儿用不了?
求解答

zltzlt 发表于 2020-2-18 14:54:03

name 是字符串,不能用 char name 声明。

应该这样:

#include <stdio.h>

int main()
{
    char name;
    float cm;
    float in;
    float kg;
    float lb;

    printf("请输入您的名字:");
    scanf("%s", &name);
    printf("请输入您的身高:");
    scanf("%f", &cm);
    printf("请输入您的体重:");
    scanf("%f", &kg);
    printf("========== 正在为您转换 ==========\n");
    printf("%s的身高是%f(in),体重是%f(lb)。", name, cm, kg);

    return 0;
}

一个账号 发表于 2020-2-18 14:54:37

改成这样:

#include <stdio.h>

int main()
{
      char name;
      float cm, kg;
      
      printf("请输入您的名字:");
      scanf("%s", &name);
      printf("请输入您的身高:");
      scanf("%f", &cm);
      printf("请输入您的体重:");
      scanf("%s", &kg);
      printf("========== 正在为您转换 ==========\n");
      printf("%c的身高是%f(in),体重是%f(lb)。", name, cm, kg);
      
      return 0;
         
}

我叫MD 发表于 2020-2-18 14:55:00

char name;   
这是一个字符
scanf("%c", &name);
printf("%c", name);


如果你想接收字符穿,定义的时候应该是字符数组
char name = { 0 };
scanf("%s", name);
printf("%s",name);


总体来说就是你定义一个字符用来接收名字所以崩了

转会但姿势丶 发表于 2020-2-18 17:13:43

我叫MD 发表于 2020-2-18 14:55
char name;   
这是一个字符
scanf("%c", &name);


谢啦~

转会但姿势丶 发表于 2020-2-18 17:15:03

zltzlt 发表于 2020-2-18 14:54
name 是字符串,不能用 char name 声明。

应该这样:

谢了~

转会但姿势丶 发表于 2020-2-18 17:15:43

一个账号 发表于 2020-2-18 14:54
改成这样:

谢啦,已经知道了~
页: [1]
查看完整版本: 关于scanf的问题