C语言 提示用户输入生日,根据用户生日求得此人属于哪个星座,输出该星座的名称.

C语言 提示用户输入生日,根据用户生日求得此人属于哪个星座,输出该星座的名称.,第1张

/*C语言 提示用户输入生日,根据用户生日求得此人属于哪个星座,输出该星座的名称. */

/*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:::不懂还可继续问。。。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12081235.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存