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; }