當前位置:首頁 » 編程語言 » c語言生日星座判斷
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言生日星座判斷

發布時間: 2022-03-01 05:21:43

c語言編譯一個能根據生日判斷什麼星座

用if else實現會比較好!因為星座日期是一個時間段啊!而switch語句是符合某個值的!

Ⅱ 實現根據輸入的生日判定星座。

這個有難度嗎


星座判斷無非是根據生日的 月份,日期 這兩個來判斷。


兩個思路:

  1. 將星座信息儲存,每個星座都包含指定的日期范圍,然後對生日判斷

  2. 直接對生日判斷,首先判斷月份,可以簡單判斷處於那幾個星座,然後判斷日期,這就確定了具體的星座

over

Ⅲ 編程輸入某人生日,算出是星期幾(C語言)

http://jingyan..com/article/ae97a646820186bbfd461d37.html 去看看挺詳細的,比較復雜

Ⅳ c語言編寫程序,判斷輸入的日期(月,日)屬於哪個星座

c語言的輸出輸入是格式化的,printf表示輸出,在屏幕上列印出來;scanf表示讀入,即把你在屏幕上如果打10,按回車,10就存儲到month那個變數裡面,%d代表輸入一個整數。

還有,要注意,你那個不是c語言……已經是c++了。你看上面定義的那個struct結構體里竟然已經有public……而且還有函數的定義……

Date(int m, int d) 是函數的聲明,set(m, d)是函數的定義。聲明嘛,就是說,我聲明有這個函數存在(注意哦,不一定要給出這個函數具體怎樣的)~定義嘛,就是我要給出這個函數的具體內容和定義。就比如說,我聲明我和張三是好朋友,但我不一定要介紹張三是一個怎樣的人。但我定義張三這個朋友的話,我就必須從各方面都介紹他。聲明和定義在程序設計中,表示形式往往就不一樣了。

函數名是自己起的,愛怎麼起都行,只要調用和定義能對上號就好。

學程序一開始慢慢來,不用急。當年我寫第一個c語言程序,漏了許多分號,被朋友嘲笑了很久……當時也和你一樣,printf什麼的一直不會用。不過現在就好了……

c語言的教材的話,國內的鮮有好書,還是推薦你看譚浩強寫的,清華大學出版社。確實編的很好,深入淺出,很多抽象概念他老人家都解釋得特別好,國內其他教材都比不上。當你學好基礎,想進一步學習的話,推薦兩本國外教材,C PRIMER PLUS 和THE C PROGRAMMING。C PRIMER PLUS比較全,THE C PROGRAMMING是c語言發明者寫的,很牛,不過他寫法和中國傳統思維很不一樣,建議看完譚浩強的書之後再去看。

祝你享受編程的快樂~!

補充,代碼注釋:

#include<stdio.h>
#include<string.h>
//這個程序寫得實在不敢恭維,可讀性極低。變數名起得很不好,重復太多,很容易引起誤解。所以我建議初學者還是去看一些精挑細選的例子,比如譚浩強書上那些真的很不錯。我在THU學EE的,這是我親身經驗和個人建議。。

struct Date //定義了一個叫Date的結構體
{
int month, day;
public:
Date(int m, int d) //聲明一個叫Date的函數
{
set(m, d);
}
void set(int m, int d);

void constell(); //Date結構體底下有一個叫constell的函數
};

void Date::set(int m, int d)
{
//在此最好檢查日期是否輸入正確...
month=m, day=d;
}

void Date::constell()
{
string c[12][2]={ {"魔蠍座", "水瓶座"}, {"水瓶座", "雙魚座"}, {"雙魚座", "白羊座"},
{"白羊座", "金牛座"}, {"金牛座", "雙子座"}, {"雙子座", "巨蟹座"},
{"巨蟹座", "獅子座"}, {"獅子座", "處女座"}, {"處女座", "天秤座"},
{"天秤座", "天蠍座"}, {"天蠍座", "射手座"}, {"射手座", "魔蠍座"}
};

int x=month-1;
int y=day/21;
printf("%s",c[x][y]);
}

int main()
{
int month,day;
printf("請輸入月份: ");
scanf("%d",&month);
cout<<"請輸入日期: ";
scanf("%d",&day);
Date d(month,day); //聲明一個Date類型的結構體變數(也可以叫對象),叫d(裡麵包含set,constell等函數,如一開頭結構體定義所示)。其作用相當於int i,聲明一個整型變數i
d.constell(); //調用結構體變數d下constell函數
return 0;
}

Ⅳ c語言根據一個人的身份證號推算出所屬的星座

連續輸入時,要清除輸入流中殘余字元。修改一點點即好:
while(1){
if ( scanf("%*10s%4d",&m)==EOF) break;
fflush(stdin); //清除輸入流中殘余字元
其它一字不改,一切照舊
if(m<=419&&m>=321)printf("Aries\n"); ....

Ⅵ 用java編一個程序能通過用戶輸入的生日判斷用戶的星座。請大神們給點提示或者思路吧。規定不能自定義方法

既然不允許用其他的方式,那就直接上代碼吧....

publicstaticvoidmain(String[]args){
intpoint=-1;
String[]str={"白羊","金牛","雙子","巨蟹","獅子","處女","天平","天蠍","射手","摩羯","水瓶","雙魚"};
SimpleDateFormatsdf=newSimpleDateFormat("MM-dd");
System.out.println("請輸入一個日期,格式為MM-dd,例如:8-9");
Scannerscan=newScanner(System.in);
Dated=null;
while(true){
try{
Stringinput=scan.next();
d=sdf.parse(input);
break;

}catch(Exceptionex){
System.out.println("請輸入正確的日期格式,例如:08-09");
}
}
//格式化日期,將日期轉成**.**的格式,比如1月1日轉成1.01
Doubledate=Double.parseDouble((d.getMonth()+1)
+"."+String.format("%02d",d.getDate()));

if(3.21<=date&&4.19>=date){
point=0;
}elseif(4.20<=date&&5.20>=date){
point=1;
}elseif(5.21<=date&&6.21>=date){
point=2;
}elseif(6.22<=date&&7.22>=date){
point=3;
}elseif(7.23<=date&&8.22>=date){
point=4;
}elseif(8.23<=date&&9.22>=date){
point=5;
}elseif(9.23<=date&&10.23>=date){
point=6;
}elseif(10.24<=date&&11.22>=date){
point=7;
}elseif(11.23<=date&&12.21>=date){
point=8;
}elseif(12.22<=date&&12.31>=date){
point=9;
}elseif(1.01<=date&&1.19>=date){
point=9;
}elseif(1.20<=date&&2.18>=date){
point=10;
}elseif(2.19<=date&&3.20>=date){
point=11;
}
if(point==-1){
System.out.println("你真的是地球人么....");return;
}
System.out.println(String.format(
"找到啦!o^^o,你的星座是%s.",str[point]));

Ⅶ C語言,星座匹配問題

1)建立兩個數組 a[2];b[2]分別存儲第一人的月,日,第二人的月,日,從合理性角度分析
月a[0]∈[1,12],a[1]也就是日期根據a[0]決定,a[0]是1,3,5,7,8,12情況下,a[1]不能是31.
a[0]是2的情況下,a[1]不能超過29.如果輸入29要減去1(為了後面的日期差計算星座做基礎)
2)第一個函數int sum_day (int* a),把剛才輸入作為形參傳入,按照一定公式計算N月M日是這年的第K天,然後返回這個日期。
3)因為每個星座之隔都是30天(2月按照28來看)。把這個天數,假設是返回的k,那麼分類討論,
第一種,k<19,那麼直接知道是摩羯
第二種 switch ((k-19)/30) {
case 0:水瓶
case 1:雙魚
........
4)匹配的規則,我們已經知道雙方的星座了,至於是否合得來用一個二維數組來存放情況
int c[12][12];橫坐標的0~11分別表示水瓶~摩羯,縱坐標也是一個道理。比如
a[0][0]就是水瓶配水瓶,c[11][11]就是摩羯配摩羯。如果c[0][0]是存放1,則表示水瓶配水瓶是合適的,如果是0則表示不合適,1還是0由編程人員設置。
3)輸出,(k-19)/30就是下標,例如c [(k1-19)/30][,(k2-19)/30],那麼這將表示這個坐標的數據,1
表示合適,0表示不合適,k是表示這一年的第k天。

Ⅷ c語言輸入身份證輸出生日,性別,並判斷身份證是否合法

voidmain()
{
inta[18]
for(inti=0;i<18;i++)
{
inttemp;
scanf("%d",&temp);
a[i]=temp;
}
printf("生日: ");
for(intj=0;j<8;j++)
{printf("%d ",a[6+i]);}

charsex[2]={』女『,』男『};
printf("性別:%c ",sex[a[16]%2]);//
printf("位數:%d ",18);
}

Ⅸ C語言中如何輸出月份日期對應的星座

你好!
對月分進行判斷就可以了
打字不易,採納哦!

Ⅹ c語言編寫程序,判斷輸入的日期(月,日)屬於哪個星座

c語言的輸出輸入是格式化的,printf表示輸出,在屏幕上列印出來;scanf表示讀入,即把你在屏幕上如果打10,按回車,10就存儲到month那個變數裡面,%d代表輸入一個整數。

還有,要注意,你那個不是c語言……已經是c++了。你看上面定義的那個struct結構體里竟然已經有public……而且還有函數的定義……

Date(int m, int d) 是函數的聲明,set(m, d)是函數的定義。聲明嘛,就是說,我聲明有這個函數存在(注意哦,不一定要給出這個函數具體怎樣的)~定義嘛,就是我要給出這個函數的具體內容和定義。就比如說,我聲明我和張三是好朋友,但我不一定要介紹張三是一個怎樣的人。但我定義張三這個朋友的話,我就必須從各方面都介紹他。聲明和定義在程序設計中,表示形式往往就不一樣了。

函數名是自己起的,愛怎麼起都行,只要調用和定義能對上號就好。

學程序一開始慢慢來,不用急。當年我寫第一個c語言程序,漏了許多分號,被朋友嘲笑了很久……當時也和你一樣,printf什麼的一直不會用。不過現在就好了……

c語言的教材的話,國內的鮮有好書,還是推薦你看譚浩強寫的,清華大學出版社。確實編的很好,深入淺出,很多抽象概念他老人家都解釋得特別好,國內其他教材都比不上。當你學好基礎,想進一步學習的話,推薦兩本國外教材,C PRIMER PLUS 和THE C PROGRAMMING。C PRIMER PLUS比較全,THE C PROGRAMMING是c語言發明者寫的,很牛,不過他寫法和中國傳統思維很不一樣,建議看完譚浩強的書之後再去看。

祝你享受編程的快樂~!

補充,代碼注釋:

#include
#include
//這個程序寫得實在不敢恭維,可讀性極低。變數名起得很不好,重復太多,很容易引起誤解。所以我建議初學者還是去看一些精挑細選的例子,比如譚浩強書上那些真的很不錯。我在THU學EE的,這是我親身經驗和個人建議。。

struct Date //定義了一個叫Date的結構體
{
int month, day;
public:
Date(int m, int d) //聲明一個叫Date的函數
{
set(m, d);
}
void set(int m, int d);

void constell(); //Date結構體底下有一個叫constell的函數
};

void Date::set(int m, int d)
{
//在此最好檢查日期是否輸入正確...
month=m, day=d;
}

void Date::constell()
{
string c[12][2]={ {"魔蠍座", "水瓶座"}, {"水瓶座", "雙魚座"}, {"雙魚座", "白羊座"},
{"白羊座", "金牛座"}, {"金牛座", "雙子座"}, {"雙子座", "巨蟹座"},
{"巨蟹座", "獅子座"}, {"獅子座", "處女座"}, {"處女座", "天秤座"},
{"天秤座", "天蠍座"}, {"天蠍座", "射手座"}, {"射手座", "魔蠍座"}
};

int x=month-1;
int y=day/21;
printf("%s",c[x][y]);
}

int main()
{
int month,day;
printf("請輸入月份: ");
scanf("%d",&month);
cout<<"請輸入日期: ";
scanf("%d",&day);
Date d(month,day); //聲明一個Date類型的結構體變數(也可以叫對象),叫d(裡麵包含set,constell等函數,如一開頭結構體定義所示)。其作用相當於int i,聲明一個整型變數i
d.constell(); //調用結構體變數d下constell函數
return 0;
}