作者a031rex (隨意彎彎)
看板YHSH9601
標題為了湊一百元
時間Thu Apr 24 01:39:06 2008
我把上次來這邊請問的
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