C语言,sle8的动动手1,请大佬看看哪儿不对。
知道了,name后面没加【256】,为什么要加这个? 因为它要表示是一个,字符串吗?那为什么不写不行?只写个'[]' 因为你scanf 的%s是要求输入字符串,但是你的name是char(字符)类型,类型不匹配就会出错,改成char name【】这是字符串数组,就OK了,应该是不可以不写,除非你一开始就自己初始化,然后编译器就会自己帮你计算长度你可以看一下https://fishc.com.cn/thread-67468-1-2.html
https://fishc.com.cn/forum.php?mod=viewthread&tid=67391&extra=page%3D1%26filter%3Dtypeid%26typeid%3D583 第一种解决办法:解释再注释中 已经测试过了是可以的
代码如下
#include <stdio.h>
int main()
{
float tall,weight;
char name;//第一种这里不变下边变
printf("请输入您的名字:");
scanf("%c",&name);//这里变%c
printf("请输入您的身高(cm):");
scanf("%f",&tall);
printf("请输入您的体重(kg):");
scanf("%f",&weight);
printf("========正在为您计算==========\n");
tall = tall/2.54;
weight = weight / 0.453;
printf("%c的身高是%.2f(in),体重是%.2f(lb).\n",name,tall,weight);//这里也变成%c
return 0;
}
第二种方法:解释同样在注释中,这个使用数组接收,也已经测试过了是可以的
代码如下
#include <stdio.h>
int main()
{
float tall,weight;
char name=" ";//第二种这里变成数组
printf("请输入您的名字:");
scanf("%s",name);//这里变%s
printf("请输入您的身高(cm):");
scanf("%f",&tall);
printf("请输入您的体重(kg):");
scanf("%f",&weight);
printf("========正在为您计算==========\n");
tall = tall/2.54;
weight = weight / 0.453;
printf("%s的身高是%.2f(in),体重是%.2f(lb).\n",name,tall,weight);//这里也变成%s
return 0;
} 好的,谢谢你啦 好,谢谢你啦 肖-肖 发表于 2021-5-18 14:36
第二种方法:解释同样在注释中,这个使用数组接收,也已经测试过了是可以的
代码如下
好,谢谢你啦 孤世星辰 发表于 2021-5-18 11:27
因为你scanf 的%s是要求输入字符串,但是你的name是char(字符)类型,类型不匹配就会出错,改成char name ...
好的,谢谢你啦
页:
[1]