當前位置:編程學習大全網 - 源碼下載 - 負20源代碼

負20源代碼

我不會寫這個讀文件。把測試數組的代碼給我,妳可以根據自己的具體需求修改就好。如果妳不明白,給我信息。

# include & ltstdio.h & gt

# include & ltstring.h & gt

#定義N_L 30 //數組長度

#定義MAX 120 //壹個固定值

#define F_L 10 //如果這個例子中的數字是20,那麽n _ l-20 = f _ l。

Intnumi [n _ l] = {11,2,3,4,5,6,7,8,9,9,//測試數組,假設數組元素為正整數,否則做相應的修改。

1,2,3,4,5,6,7,8,9,9,

1,22,23,24,25,26,27,28,29,20};

Int find(int *p) //測試當前值是否匹配,如果匹配成功則輸出。

{ int i=0,sum = 0;

for(I = 0;我& ltn _ L;i++)

sum+= numi[I];

if(sum & gt;=MAX)返回0;

for(I = 0;我& ltn _ L;i++)

printf("%2d ",numi[I]);

printf(" = % d & lt;%d\n\n ",sum,MAX);

返回1;

}

int test(int *num_t,int deptemp,int site,char first)

/*遞歸搜索,num_t是數組的第壹個地址,deptemp記錄遞歸次數,site是數組的當前位置,first標記第壹層是否遞歸*/

{ int nback = 0;

while(site & lt;N_L)

{ if(' s ' = = first & amp;& amp站點& gtN_L-F_L)返回0;/*第壹層遞歸的特殊判斷*/

if(num _ t[site]= = 0){ site++;繼續;}/*如果當前位置的值已被刪除,則刪除下壹個值*/

n back = num _ t[site];num _ t[site]= 0;/*將當前值設置為零,並保存以備恢復。零表示刪除當前位置的值*/

if(deptemp & lt;F_L-1)測試(num_t,deptemp+1,site+1,' n ');/*刪除的數字小於10。繼續*/

else find(num _ t);/*遞歸到第十層,即去掉10這個數,測試是否匹配*/

num _ t[site]= n back;site++;/*恢復當前位置的值以測試其他情況*/

}

返回1;

}

void main()

{ test(numi,0,0,' s ');

}

  • 上一篇:B2B訂貨系統哪個好用?
  • 下一篇:劉金和君子蘭,君子種子怎麽種植,君子蘭怎麽養
  • copyright 2024編程學習大全網