刚学C语言,这道题不会,麻烦大家能不能告诉我代码怎么打?谢谢了!!

问题是这个:男生超过18岁可以喝酒,没有超过18岁时,喝饮料。女生,超过20岁时,可以喝酒,没有超过喝饮料。要用scanf输入年龄和性别,用if或者switch语句写出代... 问题是这个:
男生超过18岁可以喝酒,没有超过18岁时,喝饮料。
女生,超过20岁时,可以喝酒,没有超过喝饮料。
要用scanf输入年龄和性别,用if或者switch语句写出代码

然后下面代码,我刚开始就OVER了
{
printf("请输入你的性别:");
char a[] = "男";
scanf("%s",&a);

int ago;
printf("请输入你的年龄:");
scanf("%d",&ago);

if (ago>18 &&a=="男")
{
printf("可以喝酒");
}
else
{
printf("不可以喝酒!");
}
}
怎么运行都不可以喝酒!!!!
展开
 我来答
牛奶是猫
2016-07-15 · TA获得超过452个赞
知道小有建树答主
回答量:293
采纳率:100%
帮助的人:107万
展开全部
#include<stdio.h>
#include<string.h>
int main()
{
char sex[5];
int age;
printf("请输入性别和年龄");
scanf("%d",&age);
scanf("%s",sex);
if(age>20)
{
printf("可以喝酒!");
}
else if(age>18 && strcmp(sex,"男") ==0)
{
printf("可以喝酒!");
}
else
printf("喝饮料!");
return 0;
}
你试试对不对
匿名用户
2016-07-15
展开全部
if (ago>18 &&a=="男")

字符串比较不能直接用==、>、<、>=、<=这些符号,应该用strcmp()

可以修改如下:
scanf("%s",a);
……
if (ago>18 && strcmp(a,"男") == 0 )
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaosa380
2016-07-15 · TA获得超过756个赞
知道小有建树答主
回答量:1466
采纳率:33%
帮助的人:261万
展开全部
包含头文件
#include <string.h>
scanf("%s",&a);改成scanf("%s",a);
a=="男" 换成 (strcmp(a, "男") == 0)
追问
能不能写个代码下来呢,整个题目我都有点蒙,给个思路也行,是不是要用到嵌套式if...else语句?
追答
#include 
#include

int main(void)
{
int sex_index = 0;
char a[24] = "";
printf("请输入你的性别:");
scanf("%s",&a);
if(strcmp(a, "男") == 0)
sex_index = 1;
else if(strcmp(a, "女") == 0)
sex_index = 2;
else
sex_index = 0;

int ago = 0;
printf("请输入你的年龄:");
scanf("%d",&ago);

switch(sex_index)
{
case 1:
if(ago >= 18)
printf("可以喝酒\n");
else
printf("喝饮料\n");
break;
case 2:
if(ago >= 20)
printf("可以喝酒\n");
else
printf("喝饮料\n");
break;
default:
printf("你不是人\n");
break;
}

return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式