1樓:匿名使用者
媽媽的,雖然我程式寫的很垃圾,還是把這道題給算出來的!
看在我費了這九牛二虎之力的份上,希望樓主多賞點分!!!
程式如下:
#include
#include
#include
using namespace std;
#define maxsize 100
typedef int elemtype;
typedef struct sqstack sqstack;//由於sqstack不是一個型別 而struct sqstack才是
char ch[7]=;//把符號轉換成一個字元陣列int f1[7]=;//棧內元素優先順序
int f2[7]=;//棧外的元素優先順序struct sqstack
;void initstack(sqstack *s)void push(sqstack *s,elemtype x)}void pop(sqstack *s,elemtype *x)}elemtype gettop(sqstack s)else
return s.stack[s.top];
}elemtype f(char c)
}char precede(char c1,char c2)}}//在這裡判斷是否以運算子結束是不對的return(gettop(opnd));
}int main()
;char exp[30];
int i,value,x[8],z[8];
for(x[0]=0;x[0]<2;x[0]++)for(x[1]=0;x[1]<2;x[1]++)for(x[2]=0;x[2]<2;x[2]++)for(x[3]=0;x[3]<2;x[3]++)for(x[4]=0;x[4]<2;x[4]++)for(x[5]=0;x[5]<2;x[5]++)for(x[6]=0;x[6]<2;x[6]++)for(x[7]=0;x[7]<2;x[7]++)for(z[0]=0;z[0]<=x[0];z[0]++)for(z[1]=0;z[1]<=x[1];z[1]++)for(z[2]=0;z[2]<=x[2];z[2]++)for(z[3]=0;z[3]<=x[3];z[3]++)for(z[4]=0;z[4]<=x[4];z[4]++)for(z[5]=0;z[5]<=x[5];z[5]++)for(z[6]=0;z[6]<=x[6];z[6]++)for(z[7]=0;z[7]<=x[7];z[7]++)for(i=8;i>0;i--)
}for(i=0;i exp[i+1]=0; value=evaluateexpression(exp); if(value==100) }return 0; }執行輸出: 123-45-67+89=100 123+45-67+8-9=100 123+4-5+67-89=100 123-4-5-6-7+8-9=100 12+3-4+5+67+8+8=100 12-3-4+5-6-7+89=100 12+3+4+5-6-7+89=100 1+23-4+56+7+8+9=100 1+23-4+5+6+78+9=100 1+2+34-5+67-8+9=100 1+2+3-4+5+6+78+9=100 補充:剛才漏了幾個標頭檔案! 2樓:匿名使用者 #include void main() ,b[9]=; long a[9],b[8]; int i,j,k,lenb,lend; for(d[0]=0; d[0]<3; d[0]++)//1 2間的運算子 for(d[1]=0; d[1]<3; d[1]++)//2 3間的運算子 for(d[2]=0; d[2]<3; d[2]++)//3 4間的運算子 for(d[3]=0; d[3]<3; d[3]++)//4 5間的運算子 for(d[4]=0; d[4]<3; d[4]++)//5 6間的運算子 for(d[5]=0; d[5]<3; d[5]++)//6 7間的運算子 for(d[6]=0; d[6]<3; d[6]++)//7 8間的運算子 for(d[7]=0; d[7]<3; d[7]++)//8 9間的運算子 if(d[i]==0) a[j]=10*a[j]+b[i+1];//a存放資料 else if(d[i]==1) b[k++]=1; //b存放運算子 else b[k++]=2; }lenb=j; lend=k; char c[8];long sum=a[0]; for(i=0;i else if(b[i]==2) }if(sum==100)}} 正如樓主所說,生成運算子的陣列是非常麻煩的,希望有人能夠解決. 由運算子生成資料的演算法我自認為還可以,有什麼問題希望能夠討論! 不好意思,未加註釋,讀起來可能會痛苦 絕對支援此類問題 注:借鑑一樓 我們的演算法大都一樣,用1代表+,用2代表-,沒有運算子就用0來替代 所以就可以把所有可能的運算子陣列用 (如果有n種運算可視為n+1進位制的數) 3進位制的整數替代,工有3^8種組合; 即可以把for 迴圈中的d[8]改為 d[8]=; //初始化全為0 for(int i=0;i<3^8;i++) 雖然在演算法的複雜度上沒什麼提高,但書寫起來就要方便很多 3樓: 針對這個問題,一樓的程式比較好點,也比較簡單,只用到c語言的知識 二樓的,用到的堆疊去處理字串表示式,如果能看懂,會學到不少新知識的 另外,二樓的程式,也方便把+,-擴充套件成其他符號 總之,都很不錯 一樓的**格式太不好了,我整理一下: #include #include void main() ;//8個可能的運算子插入位,0表沒有,1表加法,2表減法 for(op[0]=0; op[0]<3; op[0]++)//1 2間的運算子 for(op[1]=0; op[1]<3; op[1]++)//2 3間的運算子 for(op[2]=0; op[2]<3; op[2]++)//3 4間的運算子 for(op[3]=0; op[3]<3; op[3]++)//4 5間的運算子 for(op[4]=0; op[4]<3; op[4]++)//5 6間的運算子 for(op[5]=0; op[5]<3; op[5]++)//6 7間的運算子 for(op[6]=0; op[6]<3; op[6]++)//7 8間的運算子 for(op[7]=0; op[7]<3; op[7]++)//8 9間的運算子 else } //遇到了新運算子 else //開始取hou數 else //更新運算子 if(op[i]==1) ysf=1; else ysf=-1; } }//完成最後一個運算 total=qian+ysf*hou; //輸出 if(total==100) else if(op[i]==2) }} printf("=%d\n",total); } }} 4樓:潑猴德拉 以前做過 #include #include void main() ;//8個可能的運算子插入位,0表沒有,1表加法,2表減法 for(suan[0]=0; suan[0]<3; suan[0]++)//1 2間的運算子 for(suan[1]=0; suan[1]<3; suan[1]++)//2 3間的運算子 for(suan[2]=0; suan[2]<3; suan[2]++)//3 4間的運算子 for(suan[3]=0; suan[3]<3; suan[3]++)//4 5間的運算子 for(suan[4]=0; suan[4]<3; suan[4]++)//5 6間的運算子 for(suan[5]=0; suan[5]<3; suan[5]++)//6 7間的運算子 for(suan[6]=0; suan[6]<3; suan[6]++)//7 8間的運算子 for(suan[7]=0; suan[7]<3; suan[7]++)//8 9間的運算子 //遇到了新運算子 else //開始取hou數 else //更新運算子 if(suan[i]==1) ysf=1; else ysf=-1;} } //完成最後一個運算 total=qian+ysf*hou; //輸出 if(total==100) printf("=%d\n",total);} } system("pause");} c++程式設計題 5樓:匿名使用者 #include #include using namespace std; struct student s[7]; int main() for(int i=0;i<5;i++)} 一道c/c++程式程式設計題 6樓:匿名使用者 首先構造個m*m的方陣,其中每個元素表示該層每人相對於其他層的不滿意度.先初始化這個方陣,由不滿意度的表示式看,只需要構造一個下(上)的三角矩陣,而且對角線元素值都相等(主對角元是0),至於上(下)三角里面的元素可用差值關係求得.有了這個表,剩下的問題就是純計算了 迴圈上沒少多少,不過少了條件比較,你試試看行不行 7樓:匿名使用者 建議你去專門的程式設計論壇求助 8樓: 可以去bbs.csdn.net 你的程式是夠慢的定義的陣列那麼大!我沒怎麼看!等有時間的話研究以下 求c/c++程式設計練習題 9樓:匿名使用者 看看 c++stl庫 這個才是關鍵。 演算法要的是懂裡面的思想。 10樓: csdn主頁拉到最下面每天都有10道演算法題,可以看看,另外還可以看看《程式設計師面試寶典》 11樓: 找一本 資料結構 的課本 ,真正的花點時間 看一下,c++ 是逃不掉的 一定跟資料結構相關的 c++程式設計題目 12樓:來自虎丘山穩重的海豹 只做一題吧 #include #include using namespace std; class cstudent int getid()// 獲取編號的函式void print( )//輸出資料成員的函式(不含編號)};void main( ) 輸入還沒做 用夢竹 include define n 3 int main b n n i,j for i 0 i 3 i for j 0 j 3 j b i j a 2 i j for i 0 i 3 i return 0 時間有限,只做了第一個。注 如果題目上有例子,可以直接按例題寫 這個 如果想改可以改n... 文庫精選 內容來自使用者 小微風信 實驗一 簡單的c程式設計 2學時 一 實驗方式 一人一機 二 實驗目的 1 瞭解c語言程式的編譯環境和編寫過程。2 掌握c語言程式在visual c 6.0環境下的除錯過程。3 初步瞭解c語言程式的特點。4 掌握c語言的資料型別。三 實驗內容 1 計算兩個數x和y... 陶宇司空韶 include void main include include define n 64 int main c 2 n int i,j,l,n while 1 strcpy c,a for i 0 strcmp a,b 0 i strcpy c,b printf i t d n i r...c語言程式設計題,C語言程式設計題
c語言程式設計題,c語言程式設計題
C語言程式設計題 洗牌,C語言程式設計題