关于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那儿用不了?
求解答 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;
} 改成这样:
#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;
} char name;
这是一个字符
scanf("%c", &name);
printf("%c", name);
如果你想接收字符穿,定义的时候应该是字符数组
char name = { 0 };
scanf("%s", name);
printf("%s",name);
总体来说就是你定义一个字符用来接收名字所以崩了 我叫MD 发表于 2020-2-18 14:55
char name;
这是一个字符
scanf("%c", &name);
谢啦~ zltzlt 发表于 2020-2-18 14:54
name 是字符串,不能用 char name 声明。
应该这样:
谢了~ 一个账号 发表于 2020-2-18 14:54
改成这样:
谢啦,已经知道了~
页:
[1]