输入生日查询星座c语言?/*C语言 提示用户输入生日,根据用户生日求得此人属于哪个星座,输出该星座的名称. *//*by Mr.Kong*/ #include
凡是数字前带0的都去掉就OK
输入的格式应该为
1984/02/03
VC6.0测试正常
include
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");
}
首先要看星座所属月份及日期,每个月的有些天是一个星座,而有些天是另一个星座,这时switch()语句就派上用场了,但要输入的是公历的日期!
#include
int main()
{
int year,month,day;
printf("请输入你的公历生日日期:\n");
scanf("%d%d%d",&year,&month,&day);
switch(month)
{
case 1: if(day>=20)printf("水瓶座\n");
else printf("摩羯座\n"); break;
case 2: if(day>=19) printf("双鱼座\n");
else printf("摩羯座\n"); break;
case 3: if(day>=21) printf("白羊座\n");
else printf("双鱼座\n"); break;
case 4: if(day>=20) printf("金牛座\n");
else printf("白羊座\n"); break;
case 5: if(day>=21) printf("双子座\n");
else printf("金牛座\n"); break;
case 6: if(day>=22) printf("巨蟹座\n");
else printf("双子座\n"); break;
case 7: if(day>=23) printf("狮子座^_^\n");
else printf("巨蟹座\n"); break;
case 8: if(day>=23) printf("处女座\n");
else printf("狮子座\n"); break;
case 9: if(day>=23) printf("天秤座\n");
else printf("处女座\n"); break;
case 10: if(day>=24) printf("天蝎座\n");
else printf("天秤座\n"); break;
case 11: if(day>=23) printf("射手座\n");
else printf("天蝎座\n"); break;
case 12: if(day>=22) printf("摩羯座\n");
else printf("射手座\n"); break;
default: printf("Wrong input!\n"); break;
}
return 0;
}
#include
void main()
{
int a,b,c;
scanf("%d%d",&a,&b);
c=a*100+b;
switch(c)
{
case (c>=121&&c<=220):printf("%a月%b日为宝瓶座\n",a,b);
case (c>=221&&c<=320):printf("%d月%d日为双鱼座\n",a,b);
case (c>=321&&c<=420):printf("%d月%d日为白羊座\n",a,b);
case (c>=421&&c<=520):printf("%d月%d日为金牛座\n",a,b);
case (c>=521&&c<=620):printf("%d月%d日为双子座\n",a,b);
case (c>=621&&c<=722):printf("%d月%d日为巨蟹座\n",a,b);
case (c>=723&&c<=822):printf("%d月%d日为狮子座\n",a,b);
case (c>=823&&c<=922):printf("%d月%d日为处女座\n",a,b);
case (c>=923&&c<=1022):printf("%d月%d日为天秤座\n",a,b);
case (c>=1023&&c<=1122):printf("%d月%d日为天蝎座\n",a,b);
case (c>=1023&&c<=1222):printf("%d月%d日为人马座\n",a,b);
case (c>=1223&&c<=1231):printf("%d月%d日为摩羯座\n",a,b);
case (c>=101&&c<=120):printf("%d月%d日为双鱼座\n",a,b);
}
}
很简单的
c语言的输出输入是格式化的,printf表示输出,在屏幕上打印出来;scanf表示读入,即把你在屏幕上如果打10,按回车,10就存储到month那个变量里面,%d代表输入一个整数。
还有,要注意,你那个不是c语言……已经是c++了。你看上面定义的那个struct结构体里竟然已经有public……而且还有函数的定义……
Date(int m, int d) 是函数的声明,set(m, d)是函数的定义。声明嘛,就是说,我声明有这个函数存在(注意哦,不一定要给出这个函数具体怎样的)~定义嘛,就是我要给出这个函数的具体内容和定义。就比如说,我声明我和张三是好朋友,但我不一定要介绍张三是一个怎样的人。但我定义张三这个朋友的话,我就必须从各方面都介绍他。声明和定义在程序设计中,表示形式往往就不一样了。
函数名是自己起的,爱怎么起都行,只要调用和定义能对上号就好。
学程序一开始慢慢来,不用急。当年我写第一个c语言程序,漏了许多分号,被朋友嘲笑了很久……当时也和你一样,printf什么的一直不会用。不过现在就好了……
c语言的教材的话,国内的鲜有好书,还是推荐你看谭浩强写的,清华大学出版社。确实编的很好,深入浅出,很多抽象概念他老人家都解释得特别好,国内其他教材都比不上。
#includevoidmain()
{
intn,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);}
elseif(y==2)
{printf("错误,日子的数只能在1-29之间!\n");
printf("请输入生日的日子:\n");
scanf("%d",&r);}
//以上是正确的输入一个人的生日年、月、日
if(y==1&&r<21)printf("为:摩羯座。
以上就是输入生日查询星座c语言的全部内容,&n); printf("请输入生日的月份:\n"); scanf("%d",&y); while (y<1||y>12) { printf("错误。