不過目前正在練一題:輸入一整數值n,輸出n位數的所有二進位值…
例如:
input:
n=3;
output:
000 001 010 011 ......... 110 111
嗯…我用TC去寫…也寫出來了…程式碼是…
(#include省略)
void sort(int n ,const char* nowstr)
{if(!n){cout << nowstr<<endl;}
else
{char tmpstr[255];char tmpstr2[255];
strcpy(tmpstr,nowstr);
sort(n-1,strcat(tmpstr,"0"));
strcpy(tmpstr2,nowstr);
sort(n-1,strcat(tmpstr2,"1"));
}
}
void main()
{int a;cout <<"i need a number...>>" ; cin >> a;
sort(a,"");
}
上面是利用字元陣列去作的…
但是當我打算用動態配置的觀念去作…改寫成:
FILE* input=fopen("answer.txt","w");
void sort(int n ,const char* nowstr)
{if(!n){fprintf(input,"%s\n",nowstr);}
else
{char* tmpstr;tmpstr=new char[255];
strcpy(tmpstr,nowstr);
sort(n-1,strcat(tmpstr,"0"));delete tmpstr;tmpstr=new char[255];
strcpy(tmpstr,nowstr);
sort(n-1,strcat(tmpstr,"1"));
}
}
void main()
{int a;cout <<"i need a number...>>" ; cin >> a;
sort(a,"");
fclose(input);
}
輸入1~7還沒有問題…但是從8開始…就出問題了…
難道是指標功能本身有限制嗎?
希望各位高手能花時間指點一下^^~謝謝~~
--
不怕死的十七歲小鬼…
^~~~^
( ^_^*)//
───GRASSBOY
--
* Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>