請幫助縮短此功能,以便有25個或更少的行! 它輸出從0到99個號碼的所有可能的組合,縮短或拆分代碼
EX:00 01,00 02,00 03,00 04,00 05,...,00 99,01 02,..., 97 99,98 99
void dp_print_comb2(void)
{
char a;
char b;
char c;
char d;
a = '0';
b = '0';
while (a <= '9')
{
if (b > '9')
{
a++;
b = '0';
}
c = a;
if (b == '9')
c++;
d = b + 1;
if (b == '9')
d = '0';
while (c <= '9')
{
ok(a, b, c, d);
d++;
if (d > '9')
{
c++;
d = '0';
}
}
b++;
}
}
所以,如果有分裂此功能,或者縮短請幫助我的方式!謝謝!
如果主要和其他功能需要我可以把他們也!
ps:我開始學習C,並做了一些練習! (抱歉不好英語)
只是表面上,如果你真的只是想減少代碼行(不只是刪除換行符):你有兩種情況下,你檢查'B = ='9',其中'd = b + 1'。 'd = b + 1'不受第一次檢查的影響,所以你可以結合這些'if'語句。另外,'d ++;如果(d>'9')'可以合併爲'if(++ d>'9')'。 'a ='0'; b ='0';'可以寫成'a = b ='0';'。 – lurker
'char a; char b; char c; char d;'可以縮寫爲'char a,b,c,d;'。代碼中的許多其他構造可以通過加入線條以類似的方式縮短。 –
pmg
您可以替換'a ='0'; b ='0'; (a = b ='0'; a <='9'; b ++)',並且在'while'循環塊的末尾刪除'b ++',同時(a <='9')''。再次,膚淺的變化....順便說一句,你的代碼不會「打印」任何東西。更簡短的方法是使用從0到99的計數器(整數),並使用'printf(「%02d \ n」,n)'。你的功能將是3或4行。 :) –
lurker