看板 YHSH9601 關於我們 聯絡資訊
我把上次來這邊請問的recursive程式貼出來 這次程式比較短 可是寫的時間比販賣機還長 可謂重理論 好的 有興趣的人看看吧(  ̄ c ̄)y▂ξ 我想加這一篇應該就能買張彩卷了 有沒有批踢踢前很難賺的八卦呀 ╮(╯_╰)╭ 以下為程式碼 一樣是C語言 ------------------------------------------------- /************************************* * server:A * 學號:f74966214 * 姓名:戴延任 * 編譯方式: gcc recursive.c * 執行方式:./a.out * 程式功能: 作 & | ^ + - > = < 真值表 * 更新日期:2008.04.23 *************************************/ #include<stdio.h> #include<stdlib.h> int r; int num[100];//宣告一個矩陣存放 0還有1的值 char operator[100];//宣告一個陣列存放運算符號 int judge[1];//判斷最後值是否為數字的矩陣 int recursive(int x)//印出所有排列組合 { if(x==r/2 - 1)//跑到最右邊的數準備代入truthtable運算 { if(judge[0]==0)//判斷最後一個數字是否為數字 {num[r/2]=0;//最後一個數是第r/2個 truthtable();//列出0和1的組合後代入truthtable算出真值表 num[r/2]=1; truthtable();} else//若為數字則代入num矩陣中 在代入truthtable程式做運算 {num[r/2]=judge[0]; truthtable();} } else { num[x+1]=0;//從左邊到右邊依次代入0 0 0,0 0 1... recursive(x+1); num[x+1]=1; recursive(x+1); } } int truthtable() { int truthtable() { int a,b,c,d; c=num[1];//將第一個代入c for(a=1,b=1;a<r/2 -1,b<r/2 + 1;a++,b++) { printf("%5d",num[b]);//印出0 1的表 if(operator[a]=='&')//判斷運算子為何 {d=c && num[b+1];c=d;}//重複運算 else if(operator[a]=='|') {d=c || num[b+1];c=d;} else if(operator[a]=='^') { if(c==num[b+1])//相同則為1 c=1; else if(c!=num[b+1]) c=0; } else if(operator[a]=='+') {d=c + num[b+1];c=d;}//加法運算 else if(operator[a]=='-') {d=c - num[b+1];c=d;}//減法運算 else if(operator[a]=='>') { if(c>num[b+1])//大於判斷 c=1; else if(c<=num[b+1])//其它為假 c=0; } else if(operator[a]=='<') { if(c<num[b+1]) //同大於判斷 c=1; else if(c>=num[b+1]) c=0; } else if(operator[a]=='=') { if(c==num[b+1]) c=1; else if(c>num[b+1] || c<num[b+1]) c=0; else if(c>num[b+1] || c<num[b+1]) c=0; } } printf("%9d\n",c);//做完運算印出真假值 } int main(int argc,char*argv[]) { int i; for(i=1;i<argc;i+=2)//讀取v1 v2 v3... printf("%5s",argv[i]);//印出 v1 v2 v3 etc.. printf(" truthtable \n"); for(i=2;i<argc;i+=2)//帶到另一矩陣的迴圈 operator[i/2]=*argv[i];//將運算子存放在另一個矩陣裡 r=argc;//數目代換成令一個變數 judge[0]=atoi(argv[argc-1]);//將最後一個輸入值代入一矩陣 recursive(0);//run副程式 return 0; } 嘿嘿 -- (╮|| ̄□ ̄)╮ ╭(╯╴︸╴)╯ ╦==============╦ 你有進來嗎? \("▔□▔)/ 沒有就進來吧>>> http://www.wretch.cc/blog/a031rex -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.110.121
DDD2002:給個推~~但是我end .....Orz 04/24 13:29
vgl:摸的透C語言,摸不到C罩杯 04/24 18:39