C 程式設計趣味題,C C 程式設計趣味題

時間 2022-03-31 09:40:12

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( )

輸入還沒做

c語言程式設計題,C語言程式設計題

用夢竹 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語言程式設計題,c語言程式設計題

文庫精選 內容來自使用者 小微風信 實驗一 簡單的c程式設計 2學時 一 實驗方式 一人一機 二 實驗目的 1 瞭解c語言程式的編譯環境和編寫過程。2 掌握c語言程式在visual c 6.0環境下的除錯過程。3 初步瞭解c語言程式的特點。4 掌握c語言的資料型別。三 實驗內容 1 計算兩個數x和y...

C語言程式設計題 洗牌,C語言程式設計題

陶宇司空韶 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...