用户按照YYYY/MM/DD的格式输入自己的出生日期,计算并输出用户的星座
用户按照YYYY/MM/DD的格式输入自己的出生日期,计算并输出用户的星座#include<stdio.h>voidmain(){inty,m,d;printf("请输入...
用户按照YYYY/MM/DD的格式输入自己的出生日期,计算并输出用户的星座
#include<stdio.h>
void main()
{
int y,m,d;
printf("请输入生日[YYYY/MM/DD]:");
scanf("%d/%d/%d",&y,&m,&d);
if (m>=3 && y>=22 && m<=04 && d<=20)
printf("该生日为牧羊座\n");
else if (m>=04 && y>=21 && m<=05 && d<=21)
printf("该生日为金牛座\n");
else if (m>=05 && y>=22 && m<=06 && d<=22)
printf("该生日为双子座\n");
else if (m>=06 && y>=23 && m<=07 && d<=23)
printf("该生日为巨蟹座\n");
else if (m>=07 && y>=24 && m<=08 && d<=23)
printf("该生日为狮子座\n");
else if (m>=08 && y>=24 && m<=09 && d<=23)
printf("该生日为处女座\n");
else if (m>=09 && y>=24 && m<=10 && d<=23)
printf("该生日为天枰座\n");
else if (m>=10 && y>=24 && m<=11 && d<=22)
printf("该生日为天蝎座\n");
else if (m>=11 && y>=23 && m<=12 && d<=22)
printf("该生日为射手座\n");
else if (m>=12 && y>=23 && m<=01 && d<=19)
printf("该生日为摩羯座\n");
else if (m>=01 && y>=20 && m<=02 && d<=19)
printf("该生日为水瓶座\n");
else if (m>=02 && y>=20 && m<=03 && d<=21)
printf("该生日为双鱼座\n");
}
以上是我写的,为什么 报错呢 在 8月和9月那3行报错 请高手讲解
1楼你试过么 我去掉0不好用 如果是高手 请讲解一下为什么错 我追20分 谢谢
2楼 注意要求输入[YYYY/MM/DD] 格式
3楼 说出了错误的所在 应该怎么改呢
4楼 说测试过 但是你测试 2008/08/31 了么 展开
#include<stdio.h>
void main()
{
int y,m,d;
printf("请输入生日[YYYY/MM/DD]:");
scanf("%d/%d/%d",&y,&m,&d);
if (m>=3 && y>=22 && m<=04 && d<=20)
printf("该生日为牧羊座\n");
else if (m>=04 && y>=21 && m<=05 && d<=21)
printf("该生日为金牛座\n");
else if (m>=05 && y>=22 && m<=06 && d<=22)
printf("该生日为双子座\n");
else if (m>=06 && y>=23 && m<=07 && d<=23)
printf("该生日为巨蟹座\n");
else if (m>=07 && y>=24 && m<=08 && d<=23)
printf("该生日为狮子座\n");
else if (m>=08 && y>=24 && m<=09 && d<=23)
printf("该生日为处女座\n");
else if (m>=09 && y>=24 && m<=10 && d<=23)
printf("该生日为天枰座\n");
else if (m>=10 && y>=24 && m<=11 && d<=22)
printf("该生日为天蝎座\n");
else if (m>=11 && y>=23 && m<=12 && d<=22)
printf("该生日为射手座\n");
else if (m>=12 && y>=23 && m<=01 && d<=19)
printf("该生日为摩羯座\n");
else if (m>=01 && y>=20 && m<=02 && d<=19)
printf("该生日为水瓶座\n");
else if (m>=02 && y>=20 && m<=03 && d<=21)
printf("该生日为双鱼座\n");
}
以上是我写的,为什么 报错呢 在 8月和9月那3行报错 请高手讲解
1楼你试过么 我去掉0不好用 如果是高手 请讲解一下为什么错 我追20分 谢谢
2楼 注意要求输入[YYYY/MM/DD] 格式
3楼 说出了错误的所在 应该怎么改呢
4楼 说测试过 但是你测试 2008/08/31 了么 展开
4个回答
展开全部
凡是数字前带0的都去掉就OK
输入的格式应该为
1984/02/03
VC6.0测试正常
include<stdio.h>
void main()
{
int y,m,d;
printf("请输入生日[YYYY/MM/DD]:");
scanf("%d/%d/%d",&y,&m,&d);
if (m>=3 && y>=22 && m<=4 && d<=20)
printf("该生日为牧羊座\n");
else if (m>=04 && y>=21 && m<=5 && d<=21)
printf("该生日为金牛座\n");
else if (m>=05 && y>=22 && m<=6 && d<=22)
printf("该生日为双子座\n");
else if (m>=06 && y>=23 && m<=7 && d<=23)
printf("该生日为巨蟹座\n");
else if (m>=07 && y>=24 && m<=8 && d<=23)
printf("该生日为狮子座\n");
else if (m>=8 && y>=24 && m<=9 && d<=23)
printf("该生日为处女座\n");
else if (m>=9 && y>=24 && m<=10 && d<=23)
printf("该生日为天枰座\n");
else if (m>=10 && y>=24 && m<=11 && d<=22)
printf("该生日为天蝎座\n");
else if (m>=11 && y>=23 && m<=12 && d<=22)
printf("该生日为射手座\n");
else if (m>=12 && y>=23 && m<=01 && d<=19)
printf("该生日为摩羯座\n");
else if (m>=1 && y>=20 && m<=02 && d<=19)
printf("该生日为水瓶座\n");
else if (m>=2 && y>=20 && m<=03 && d<=21)
printf("该生日为双鱼座\n");
}
输入的格式应该为
1984/02/03
VC6.0测试正常
include<stdio.h>
void main()
{
int y,m,d;
printf("请输入生日[YYYY/MM/DD]:");
scanf("%d/%d/%d",&y,&m,&d);
if (m>=3 && y>=22 && m<=4 && d<=20)
printf("该生日为牧羊座\n");
else if (m>=04 && y>=21 && m<=5 && d<=21)
printf("该生日为金牛座\n");
else if (m>=05 && y>=22 && m<=6 && d<=22)
printf("该生日为双子座\n");
else if (m>=06 && y>=23 && m<=7 && d<=23)
printf("该生日为巨蟹座\n");
else if (m>=07 && y>=24 && m<=8 && d<=23)
printf("该生日为狮子座\n");
else if (m>=8 && y>=24 && m<=9 && d<=23)
printf("该生日为处女座\n");
else if (m>=9 && y>=24 && m<=10 && d<=23)
printf("该生日为天枰座\n");
else if (m>=10 && y>=24 && m<=11 && d<=22)
printf("该生日为天蝎座\n");
else if (m>=11 && y>=23 && m<=12 && d<=22)
printf("该生日为射手座\n");
else if (m>=12 && y>=23 && m<=01 && d<=19)
printf("该生日为摩羯座\n");
else if (m>=1 && y>=20 && m<=02 && d<=19)
printf("该生日为水瓶座\n");
else if (m>=2 && y>=20 && m<=03 && d<=21)
printf("该生日为双鱼座\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
展开全部
把数字前的0去掉,
原因是:
以0开头的数字是八进制的.就是说,八进制里面的数字最大是7,用了8和9当然就出错了.
另外: 0x开头是十六进制的数据.
另外,你的程序逻辑上存在错误.下面是我更改之后的.
#include<stdio.h>
void main()
{
int y,m,d;
printf("请输入生日[YYYY/MM/DD]:");
scanf("%d/%d/%d",&y,&m,&d);
if ((m>=3 && y>=22) || (m<=4 && d<=20))
printf("该生日为牧羊座\n");
else if ((m>=4 && d>=21) || (m<=5 && d<=21))
printf("该生日为金牛座\n");
else if ((m>=5 && d>=22) || (m<=6 && d<=22))
printf("该生日为双子座\n");
else if ((m>=6 && d>=23) || (m<=7 && d<=23))
printf("该生日为巨蟹座\n");
else if ((m>=7 && d>=24) || (m<=8 && d<=23))
printf("该生日为狮子座\n");
else if ((m>=8 && d>=24) || (m<=9 && d<=23))
printf("该生日为处女座\n");
else if ((m>=9 && d>=24) || (m<=10 && d<=23))
printf("该生日为天枰座\n");
else if ((m>=10 && d>=24) || (m<=11 && d<=22))
printf("该生日为天蝎座\n");
else if ((m>=11 && d>=23) || (m<=12 && d<=22))
printf("该生日为射手座\n");
else if ((m>=12 && d>=23) || (m<=1 && d<=19))
printf("该生日为摩羯座\n");
else if ((m>=1 && d>=20) || (m<=2 && d<=19))
printf("该生日为水瓶座\n");
else if ((m>=2 && d>=20) || (m<=3 && d<=21))
printf("该生日为双鱼座\n");
}
原因是:
以0开头的数字是八进制的.就是说,八进制里面的数字最大是7,用了8和9当然就出错了.
另外: 0x开头是十六进制的数据.
另外,你的程序逻辑上存在错误.下面是我更改之后的.
#include<stdio.h>
void main()
{
int y,m,d;
printf("请输入生日[YYYY/MM/DD]:");
scanf("%d/%d/%d",&y,&m,&d);
if ((m>=3 && y>=22) || (m<=4 && d<=20))
printf("该生日为牧羊座\n");
else if ((m>=4 && d>=21) || (m<=5 && d<=21))
printf("该生日为金牛座\n");
else if ((m>=5 && d>=22) || (m<=6 && d<=22))
printf("该生日为双子座\n");
else if ((m>=6 && d>=23) || (m<=7 && d<=23))
printf("该生日为巨蟹座\n");
else if ((m>=7 && d>=24) || (m<=8 && d<=23))
printf("该生日为狮子座\n");
else if ((m>=8 && d>=24) || (m<=9 && d<=23))
printf("该生日为处女座\n");
else if ((m>=9 && d>=24) || (m<=10 && d<=23))
printf("该生日为天枰座\n");
else if ((m>=10 && d>=24) || (m<=11 && d<=22))
printf("该生日为天蝎座\n");
else if ((m>=11 && d>=23) || (m<=12 && d<=22))
printf("该生日为射手座\n");
else if ((m>=12 && d>=23) || (m<=1 && d<=19))
printf("该生日为摩羯座\n");
else if ((m>=1 && d>=20) || (m<=2 && d<=19))
printf("该生日为水瓶座\n");
else if ((m>=2 && d>=20) || (m<=3 && d<=21))
printf("该生日为双鱼座\n");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用/隔开也可以,其实是只要你去掉全部的0就Ok了,仔细改了再试下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把所有数字前面的0去掉就好了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询