c语言未经处理的异常。求大佬解答

#include<stdio.h>intmain(){charx;floatk,h,a,b,c,d;printf("请输入性别和以cm为单位的身高:\n");while(... #include<stdio.h>int main(){ char x; float k,h,a,b,c,d; printf("请输入性别和以cm为单位的身高:\n"); while (1) //判断用户输入的数是否符合要求,否则要求重新输入 scanf_s("%s,%f", &x, &h); switch (x) { case'女':k = (h - 70)*0.6, a = k * 1.1, b = 0.8*k, c = 0.9*k, d = 1.1*k, printf("当该同学体重大于%f小于%f时体重不正常,小于等于%f大于等于%f时为标准体重", &a, &b, &c, &d); break; case'男':k = (h - 80)*0.7, a = k * 1.1, b = 0.8*k, c = 0.9*k, d = 1.1*k, printf("当该同学体重大于%f小于%f时体重不正常,小于等于%f大于等于%f时为标准体重", &a, &b, &c, &d); break; default:printf("输入错误\n"); } return 0;} 展开
 我来答
月光下的qq
2020-10-04 · 科技优质答主
月光下的qq
采纳数:392 获赞数:673

向TA提问 私信TA
展开全部

您好,很高兴回答您的问题。

您的这个题目,系统已经很明显告诉您了错误的原因。因为您定义的x为字符型数据,那么它对应的输入输出格式符为%c,但是您在输入语句中写的是%s,是字符串格式,不符合字符型单个变量的输入输出。根据题目意思,应该是要输入字符串,那么定义的时候就要写成char x[2],因为存放的是性别中文字,所以数组长度定义为2就可以了。您再试试哦。

浙江启扬智能科技有限公司
2023-06-12 广告
在嵌入式开发中,建立交叉开发环境可以提高开发效率和代码质量。以下是建立交叉开发环境的一些原因:1. 硬件资源限制:嵌入式系统的硬件资源,如处理器主频、内存容量等,相对于PC机来说较为有限。利用PC机进行开发可以利用更快的硬件设备,提高开发效... 点击进入详情页
本回答由浙江启扬智能科技有限公司提供
百好佳
2020-10-02 · TA获得超过301个赞
知道小有建树答主
回答量:702
采纳率:75%
帮助的人:200万
展开全部
中文汉字是两个字节,switch函数不支持字符串;
#include<stdio.h>
int main()
{
char x[3] = "男";
int n;
float k,h,a,b,c,d;
printf("请输入性别和以cm为单位的身高:\n");
//判断用户输入的数是否符合要求,否则要求重新输入
scanf("%s %f", &x,&h);
if(x == "男")
n = 1;
else
n = 0;
switch (n)
{
case 0:k = (h - 70.0)*0.6, a = k * 1.1, b = 0.8*k, c = 0.9*k, d = 1.1*k,
printf("当该同学体重大于%.2f小于%.2f时体重不正常,小于等于%.2f大于等于%.2f时为标准体重\n", a, b, c, d); break;
case 1:k = (h - 80.0)*0.7, a = k * 1.1, b = 0.8*k, c = 0.9*k, d = 1.1*k,
printf("当该同学体重大于%.2f小于%.2f时体重不正常,小于等于%.2f大于等于%.2f时为标准体重\n", a, b, c, d); break;
default:printf("输入错误\n");
}
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式