輸入生日查詢星座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("錯誤。