/*by Mr.Kong*/
#include<stdio.h>
main()
{
int m,d /*定义m为月份,d为日*/
printf("请输入月份:")
scanf("%d",&m)
while(m<1||m>12)
{
printf("您输入的月份有误!\n请重新输入:")
scanf("%d",&m)
}
printf("请输入日:")
scanf("%d",&d)
while(d<1||d>31) /*先简单判断日期,没有考虑二月、平月、闰月等情况,之后有详细判断*/
{
printf("您输入的日有误!\n请重新输入:")
scanf("%d",&d)
}
switch(m)
{
case 1:
if(d<=19)
printf("摩羯座")
else
printf("水瓶座")
break
case 2:
if(d<=18)
printf("水瓶座")
else if(d<=29) /*二月按照29天来计算*/
printf("双鱼座")
else
printf("您输入的日有误!")
break
case 3:
if(d<=20)
printf("双鱼座")
else
printf("白羊座")
break
case 4:
if(d<=19)
printf("白羊座")
else if(d<=30)
printf("金牛座")
else
printf("您输入的日有误!")
break
case 5:
if(d<=20)
printf("金牛座")
else
printf("双子座")
break
case 6:
if(d<=21)
printf("双子座")
else if(d<=30)
printf("巨蟹座")
else
printf("您输入的日有误!")
break
case 7:
if(d<=22)
printf("巨蟹座")
else
printf("狮子座")
break
case 8:
if(d<=22)
printf("狮子座")
else
printf("处女座")
break
case 9:
if(d<=22)
printf("处女座")
else if(d<=30)
printf("天枰座")
else
printf("您输入的日有误!")
break
case 10:
if(d<=23)
printf("天枰座")
else
printf("天蝎座")
break
case 11:
if(d<=22)
printf("天蝎座")
else if(d<=30)
printf("射手座")
else
printf("您输入的日有误!")
break
case 12:
if(d<=21)
printf("射手座")
else
printf("魔羯座")
break
}
}
class Program{
static void Main(string[] args)
{
Console.WriteLine("请输入出生月份:")
int month = int.Parse(Console.ReadLine())
Console.WriteLine("请输入出生日:")
int day = int.Parse(Console.ReadLine())
Console.WriteLine("你的星座是:{0}",getAstro(month,day ).ToString())
Console.ReadKey()
}
private static String getAstro(int month, int day)
{
String[] starArr = {"魔羯座","水瓶座", "双鱼座", "牡羊座",
"金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座" }
int[] DayArr = { 22, 20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22 } // 两个星座分割日
int index = month
// 所查询日期在分割日之前,索引-1,否则不变
if (day <DayArr[month - 1])
{
index = index - 1
}
// 返回索引指向的星座string
return starArr[index]
}
#include<stdio.h>void main()
{
int n,y,r
printf("请输入生日的年份:\n")
scanf("%d",&n)
printf("请输入生日的月份:\n")
scanf("%d",&y)
while (y<1||y>12)
{
printf("错误,月份应该在1-12之间!\n")
printf("请输入生日的月份:\n")
scanf("%d",&y)
}
printf("请输入生日的日子:\n")
scanf("%d",&r)
while(y==1||y==3||y==5||y==7||y==8||y==10||y==12)
while(r<1||r>31)
{printf("错误,日子的数只能在1-31之间!\n")
printf("请输入生日的日子:\n")
scanf("%d",&r)
}
while(y==4||y==6||y==9||y==11)
while(r<1||r>30)
{printf("错误,日子的数只能在1-30之间!\n")
printf("请输入生日的日子:\n")
scanf("%d",&r)}
if(y==2&&((n%4==0n%100!=0)||n%400==0))
while(r<1||r>29)
{printf("错误,日子的数只能在1-29之间!\n")
printf("请输入生日的日子:\n")
scanf("%d",&r)}
else if(y==2)
{printf("错误,日子的数只能在1-29之间!\n")
printf("请输入生日的日子:\n")
scanf("%d",&r)}
//以上是正确的输入一个人的生日年、月、日
if(y==1&&r<21) printf("为:摩羯座。\n")
else if (y==1) printf("为:水瓶座。\n")
else if (y==2&&r<21) printf("为:水瓶座。\n")
else if (y==2) printf("为:双鱼座。\n")
else if (y==3&&r<21) printf("为:双鱼座。\n")
else if (y==3) printf("为:白羊座。\n")
else if (y==4&&r<21) printf("为:白羊座。\n")
else if (y==4) printf("为:金牛座。\n")
else if (y==5&&r<22) printf("为:金牛座。\n")
else if (y==5) printf("为:双子座。\n")
else if (y==6&&r<22) printf("为:双子座。\n")
else if (y==6) printf("为:巨蟹座。\n")
else if (y==7&&r<23) printf("为:巨蟹座。\n")
else if (y==7) printf("为:狮子座。\n")
else if (y==8&&r<23) printf("为:狮子座。\n")
else if (y==8) printf("为:处女座。\n")
else if (y==9&&r<23) printf("为:处女座。\n")
else if (y==9) printf("为:天秤座。\n")
else if (y==10&&r<24) printf("为:天秤座。\n")
else if (y==10) printf("为:天蝎座。\n")
else if (y==11&&r<23) printf("为:天蝎座。\n")
else if (y==11) printf("为:射手座。\n")
else if (y==12&&r<22) printf("为:射手座。\n")
else printf("为:摩羯座。\n")
}
解释:上半部分是验证输入的是不是正确的年、月、日。
下半部分是判断什么星座,并输出。
PS:::不懂还可继续问。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)