[C/C++基礎]-簡易算命程式
[C/C++基礎]-簡易算命程式
剛才在逛部落格發現有高手用C#寫了一個算命程式,因此一實際養將它翻譯成C/C++,有興趣的同好,歡迎來(C/P)一下。
拷貝來源:http://www.7headlines.com/article/show/247091944
#include <stdio.h>
#include <stdlib.h>
static int yearw(int y)
{
int a = 0;
y = (y - 12) % 60;
switch (y)
{
case 1: a = 12; break;
case 2: a = 9; break;
case 3: a = 6; break;
case 4: a = 7; break;
case 5: a = 12; break;
case 6: a = 5; break;
case 7: a = 9; break;
case 8: a = 8; break;
case 9: a = 7; break;
case 10: a = 8; break;
case 11: a = 15; break;
case 12: a = 9; break;
case 13: a = 16; break;
case 14: a = 8; break;
case 15: a = 8; break;
case 16: a = 19; break;
case 17: a = 12; break;
case 18: a = 6; break;
case 19: a = 8; break;
case 20: a = 7; break;
case 21: a = 5; break;
case 22: a = 15; break;
case 23: a = 6; break;
case 24: a = 16; break;
case 25: a = 15; break;
case 26: a = 7; break;
case 27: a = 9; break;
case 28: a = 12; break;
case 29: a = 10; break;
case 30: a = 7; break;
case 31: a = 15; break;
case 32: a = 6; break;
case 33: a = 5; break;
case 34: a = 14; break;
case 35: a = 14; break;
case 36: a = 9; break;
case 37: a = 7; break;
case 38: a = 7; break;
case 39: a = 9; break;
case 40: a = 12; break;
case 41: a = 8; break;
case 42: a = 7; break;
case 43: a = 13; break;
case 44: a = 5; break;
case 45: a = 14; break;
case 46: a = 5; break;
case 47: a = 9; break;
case 48: a = 17; break;
case 49: a = 5; break;
case 50: a = 7; break;
case 51: a = 12; break;
case 52: a = 8; break;
case 53: a = 8; break;
case 54: a = 6; break;
case 55: a = 19; break;
case 56: a = 6; break;
case 57: a = 8; break;
case 58: a = 16; break;
case 59: a = 10; break;
case 60: a = 7; break;
}
return (a);
}
static int monthw(int x)
{
int y=0;
switch (x)
{
case 1: y = 6; break;
case 2: y = 7; break;
case 3: y = 18; break;
case 4: y = 9; break;
case 5: y = 5; break;
case 6: y = 16; break;
case 7: y = 9; break;
case 8: y = 15; break;
case 9: y = 18; break;
case 10: y = 8; break;
case 11: y = 9; break;
case 12: y = 5; break;
}
return (y);
}
static int timew(int a)
{
int b=0;
switch (a)
{
case 1: b = 16; break;
case 2: b = 6; break;
case 3: b = 7; break;
case 4: b = 10; break;
case 5: b = 9; break;
case 6: b = 16; break;
case 7: b = 10; break;
case 8: b = 8; break;
case 9: b = 8; break;
case 10: b = 9; break;
case 11: b = 6; break;
case 12: b = 6; break;
}
return (b);
}
static int dayw(int j)
{
int dayw=0;
switch (j)
{
case 1: dayw=5; break;
case 2: dayw=10; break;
case 3: dayw=8; break;
case 4: dayw=15; break;
case 5: dayw=16; break;
case 6: dayw=15; break;
case 7: dayw=8 ; break;
case 8: dayw=16; break;
case 9: dayw=8; break;
case 10: dayw=16; break;
case 11: dayw=9; break;
case 12: dayw=17; break;
case 13: dayw=8; break;
case 14: dayw=17; break;
case 15: dayw=10; break;
case 16: dayw=8; break;
case 17: dayw=9; break;
case 18: dayw=18; break;
case 19: dayw=5; break;
case 20: dayw=15; break;
case 21: dayw=10; break;
case 22: dayw=9; break;
case 23: dayw=8; break;
case 24: dayw=9; break;
case 25: dayw=15; break;
case 26: dayw=18; break;
case 27: dayw=7; break;
case 28: dayw=8; break;
case 29: dayw=16; break;
case 30: dayw=6; break;
}
return (dayw);
}
static void fatecomments(int total)
{
printf("您的命格重 %d 兩 %d 錢:\n", total/10,total%10);
switch(total)
{
case 21:
printf("衣食奔波出外手藝之人\n");
printf("短命非業謂大凶 平生災難事重重 凶禍頰臨陷逆境 終世困苦事不成\n");
break;
case 22:
printf("幼年勞碌中年清泰之人\n");
printf("身寒骨冷苦伶仃 此命推來行乞人 碌碌巴巴無度日 終年打拱過平生\n");
break;
case 23:
printf("先難後易出外救人之命\n");
printf("此命推來骨自輕 求謀作事事難成 妻兒兄弟應難許 別處他鄉作散人\n");
break;
case 24:
printf("人智巧多能出家求食之人\n");
printf("此命推來福祿無 門庭困苦總難翁 六親骨肉皆無靠 流到他鄉作老榮\n");
break;
case 25:
printf("身閒心不閒九流藝術之人\n");
printf("此命推來祖業微 門庭營度以稀奇 六親骨肉如冰炭 一世勤勞自把持\n");
break;
case 26:
printf("幹辦營運先貧後富勞碌之人\n");
printf("平生衣祿苦中求 獨自營謀事不休 離祖出門宜早計 晚來衣祿自無憂\n");
break;
case 27:
printf("超群出眾聰明進貴衣祿之人\n");
printf("一生作靠少商量 難靠祖宗作主張 獨馬單鎗空做去 早年晚歲總無長\n");
break;
case 28:
printf("自卓為人才能近貴之人\n");
printf("一生作事似飄蓬 祖宗產業在夢中 若不過房併改姓 也相移徒二三通\n");
break;
case 29:
printf("才能客商守權達變智慧之人\n");
printf("初年運限未曾享 縱有功名在後成 需過四旬才可上 移居改姓始為良\n");
break;
case 30:
printf("衣食有餘獨自卓立成家之命\n");
printf("勞勞碌碌苦中求 東走西奔何日休 若始終身勤與儉 老來稍可免憂愁\n");
break;
case 31:
printf("先貧後富近貴藝術衣食足用之人\n");
printf("忙忙碌碌苦中求 難得祖基家可立 何日雲開見日預 中年衣食漸無憂\n");
break;
case 32:
printf("性巧過人百事精衣食到老近貴之人\n");
printf("初年運寒事難謀 漸有財源如水流 到得中年衣食旺 那時名利一齊來\n");
break;
case 33:
printf("衣食豐滿富貴巧藝術智之人\n");
printf("易年做事事難成 百計從勞枉費心 半世自如流水去 後來運到得黃金\n");
break;
case 34:
printf("財榖有餘主得內助爵祿富貴之人\n");
printf("此命福氣果如何 僧道門中衣祿多 離祖出家方得妙 終朝拜佛念彌陀\n");
break;
case 35:
printf("有福祿先難後易過房入贅近富之人\n");
printf("生平福星不周全 祖業根基覺少傳 營事生涯宜守舊 時來衣食勝從前\n");
break;
case 36:
printf("超群拔類乖巧智慧衣祿厚重之人\n");
printf("不須勞祿過平生 獨自成家福不輕 早有福星常照命 任君行去百般成\n");
break;
case 37:
printf("聰明富貴才能厚重有福壽之人\n");
printf("此命般般事不成 弟兄少力自孤成 雖然祖業須微有 來得明去時得明\n");
break;
case 38:
printf("財帛豐厚宜稱之人\n");
printf("一生骨肉最清高 早入黌門姓名標 待看年將三十六 藍衫脫去換紅袍\n");
break;
case 39:
printf("利上近貴有福有祿之人\n");
printf("此命終身運不窮 勞勞作事盡皆空 苦心竭力成家計 到得那時在夢中\n");
break;
case 40:
printf("富貴近益生涯鼎盛機關之命\n");
printf("平生衣祿是綿長 件件心中自主張 前面風霜多受過 後來必定享安康\n");
break;
case 41:
printf("稅戶近貴專才為人衣祿之人\n");
printf("此命推來事不同 為人能幹異凡庸 中年還有逍遙福 不比前年運未通\n");
break;
case 42:
printf("兵權有職富貴才能之人\n");
printf("得寬懷處且寬懷 何用隻眉趨不開 若使中年命運濟 那時名利一齊來\n");
break;
case 43:
printf("財碌厚重白手成家之人\n");
printf("為人心性最聰明 作事軒昂近貴人 衣祿一生天數定 不須勞碌是豐亨\n");
break;
case 44:
printf("好學近貴巧智財祿富厚之人\n");
printf("來事由天莫苦求 須知福祿勝前途 當年財帛難如意 晚景欣然便不憂\n");
break;
case 45:
printf("福祿豐厚極富且貴之人\n");
printf("名利推來竟若無 前途辛苦後奔波 命中難養男與女 骨肉扶持也不多\n");
break;
case 46:
printf("富貴有餘福壽雙全之命\n");
printf("東西南北盡皆道 出姓移名更覺隆 衣祿無虧天數定 中年晚景一般同\n");
break;
case 47:
printf("高官祿厚學業飽滿之人\n");
printf("此命推來旺未年 妻榮子貴自怡然 平生原有滔滔禍 可有財源如水源\n");
break;
case 48:
printf("官員財祿厚重之人\n");
printf("幼年運道夫曾亨 若是蹉跎再不與 兄弟六親皆無靠 一身事業晚年成\n");
break;
case 49:
printf("性巧精神倉庫財祿之命\n");
printf("此命推來福不輕 自成自立顧門庭 從來富貴人親近 使婢差奴過一生\n");
break;
case 50:
printf("文武才能錢榖豐盛之人\n");
printf("為利為名終日勞 中年福祿也多遭 老來是有財星照 不比前番目下高\n");
break;
case 51:
printf("祿厚官職財祿榮華富貴之命\n");
printf("一世榮華事事通 不須勞碌自亨通 弟兄叔姪皆如意 家業成時福祿宏\n");
break;
case 52:
printf("掌握兵權富貴長壽之人\n");
printf("一世亨通事事能 不須勞思自然能 宗族欣然心皆好 家業豐亨自稱心\n");
break;
case 53:
printf("青衣貴人僧道門中近貴之人 \n");
printf("此格推來氣象真 興家發達在其中 一生福祿安排定 卻是人間一富翁\n");
break;
case 54:
printf("有勇有謀威權富貴財祿之命\n");
printf("此命推來厚且清 詩書滿腹看功成 豐衣足食自然穩 正是人間有福人\n");
break;
case 55:
printf("八品官職財祿豐盛之人\n");
printf("走馬楊邊爭利名 少年做事費籌論 一朝福祿源源至 富貴榮華顯六親\n");
break;
case 56:
printf("七品官職長享榮華富貴\n");
printf("此格推來禮義通 一生福祿用無盡 甜酸苦辣皆嚐盡 財源滾滾穩且豐\n");
break;
case 57:
printf("六品官職文章壓眾精通之人\n");
printf("福祿盈盈萬事全 一生榮耀顯雙親 名揚威振人欽敬 處世逍遙似遇春\n");
break;
case 58:
printf("官祿旺相才能性直富貴之人\n");
printf("生平福祿自然來 名利兼全福壽偕 雁塔提名為貴客 紫袍金帶走金\n");
break;
case 59:
printf("五品官職財祿厚重之人\n");
printf("細推此格妙且清 必定財高禮義通 甲第之中應有分 揚鞭走馬顯威勞\n");
break;
case 60:
printf("四品官職榮華福壽財祿之人\n");
printf("一朝金榜快提名 顯祖榮宗立大動 衣食定然原裕足 田園財帛更豐盈\n");
break;
case 61:
printf("法身官掌風雷權柄之人\n");
printf("不作朝中金榜克 定為世上一財翁 聰明天付經書熟 明顯高科目是榮\n");
break;
case 62:
printf("三品官職有權柄之人\n");
printf("此命生來福不窮 讀書必定顯親榮 紫夜金帶來卿相 富貴榮華皆可同\n");
break;
case 63:
printf("指揮太守萬戶封侯之命\n");
printf("命主為官福祿長 得來福貴為非常 命題金塔傳金長 定中高科天下揚\n");
break;
case 64:
printf("二品官職尚書郎之命\n");
printf("此格威權不可當 紫袍金帶坐高堂 榮華富貴誰人及 積玉堆金滿儲倉\n");
break;
case 65:
printf("掌楬權威極大齊福祿之人\n");
printf("細推此命福不輕 定國安邦極品人 文繡雕樑微富貴 威聲照耀四方聞\n");
break;
case 66:
printf("公侯駙馬丕相之命\n");
printf("此格人間一福人 堆金積玉滿堂春 從來富貴由天定 正笏垂神謁聖君\n");
break;
case 67:
printf("英名冠世萬國來朝之人\n");
printf("此命生來福自宏 田園家業最高隆 平生衣祿豐盈足 一生榮華萬事通\n");
break;
case 68:
printf("溫和富貴繁榮極吉之命\n");
printf("富貴由天不須求 萬金家計自然豐 十年不比前番事 祖業根基水上舟\n");
break;
case 69:
printf("惠收高位功名顯達之命\n");
printf("君是人間衣祿星 一生富貴眾人欽 安然福祿由天定 安享榮華過一生\n");
break;
case 70:
printf("權力具備極品上流之命\n");
printf("此命推來福不輕 不須愁慮苦勞心 一生天定衣祿興 富貴榮華主一生\n");
break;
case 71:
printf("此乃大志大業勢如破竹之命也\n");
printf("此命生來大不同 公侯將相在其中 一生自有逍遙福 富貴榮華海品隆\n");
break;
case 72:
printf("此乃罕有生帝王之命也\n");
printf("恭喜你中樂透!!\n");
break;
default: break;
}
}
static int chinese_animal(int w)
{
w = (w < 0) ? w + 1 : w;
w = w % 12;
w = (w <= 0) ? w + 12 : w;
//因為餘數為0,所以沒有這行的話,餘數為0出不來
return (w);
}
static void output(int y)
{
switch (y)
{
case 1: printf("生肖:鼠\n"); break;
case 2: printf("生肖:牛\n"); break;
case 3: printf("生肖:虎\n"); break;
case 4: printf("生肖:兔\n"); break;
case 5: printf("生肖:龍\n"); break;
case 6: printf("生肖:蛇\n"); break;
case 7: printf("生肖:馬\n"); break;
case 8: printf("生肖:羊\n"); break;
case 9: printf("生肖:猴\n"); break;
case 10: printf("生肖:雞\n"); break;
case 11: printf("生肖:狗\n"); break;
case 12: printf("生肖:豬\n"); break;
}
}
int main()
{
int y=0,m=0,d=0,t=0;
int yw, mw, dw, tw, total;
printf("Hello world!\n");
printf("輸入生年(民國):\n");
scanf("%d",&y);
printf("輸入生月(舊曆):\n");
scanf("%d",&m);
printf("輸入生日(舊曆):\n");
scanf("%d",&d);
printf("輸入生時(24時):\n");
scanf("%d",&t);
yw = yearw(y); //生年兩數
mw = monthw(m); //生月兩數
dw = dayw(d); //生日兩數
tw = timew(t); //生辰兩數
total = yw+mw+dw+tw;
output(chinese_animal(y));
fatecomments(total); //總兩數和評語
return 0;
}
|