我覺得這是一個送分題,奈何人才太多了,給出了各種古怪的寫法,如果是做專案的話,我比驕建議一些正常的寫法,就是大家都能看得懂的,不要搞什么花里胡哨,不過你要是交流的話,既然是交流,我不覺得要多正規,即使你的觀點有問題,我覺得也可以拿出來說說,畢竟是交流,各抒己見,發表自己的觀點是最重要的,
—— 為什么不建議大家花里胡哨
我覺得花里胡哨之前首先是你基礎非常好了再去花里胡哨,不要自己很多基礎的東西還搞不清楚就去花里胡哨,
—— 看這個代碼,題外話
看看基礎搞不明白的殺傷有多大,
——————————
void start_f(int first_start) { char time_buf[512]; char buf[512]; if(!first_start) { sprintf(time_buf,"%s",get_time()); int len = strlen(time_buf); time_buf[len -1 ] = 0; printf("time_buf:%s\n",time_buf); } }
——————————
這個是在網上看到的一個代碼,比較典型的基礎不牢靠,對strlen 理解不夠,
常規解題代碼
我覺得對于這個題目,使用for是非常常規的思考方式,所以我看了所有的回答之后,寫了一個常規的代碼,
—— 代碼如下:
——————————
#include "stdio.h" void main(void) { int i=0; for(i=1;i<=100;i++) { printf("%d ",i); } for(i=99;i>=1;i--) { printf("%d ",i); } }
——————————
代碼輸出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
————————
Process exited after 0.04664 seconds withreturnvalue 2
請按任意鍵繼續. . .
—— 為什么是 void main ,而不是Int main ,題外話
這個是一個留言提到的,很多人也對這個有疑惑,main 的寫法有幾種,有的被認為是正規的,有的被認為是不正規的,
main是一個函式,既然是一個函式,就遵從函式的規則就好,
所以,這樣寫輸出并沒有什么問題
——————————
#include <stdio.h> char * main() { printf("hhh\n"); return (char * )NULL; }
——————————
我們還要知道比較常見的幾種
——————————
int main(int argc,char **argv){}
int main(int argc,char *argv[]){}
int main(void){}
——————————
—— 對于回傳值的認知
main 函式是被作業系統呼叫的,既然是被作業系統呼叫的,作業系統會判斷函式的回傳值,通過回傳值來判斷程式是否正確運行,所以main函式的回傳值是有意義的,我示例中的寫法并不規范,
對main的解讀

比較玄乎的寫法:
——————————
#include "stdio.h" void fun(int n) { if(n<100) { printf("%d ",n); fun(n+1); } printf("%d ",n); } int main(void) { fun(1); return 0; }
——————————
程式輸出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
--------------------------------
Process exited after 0.05336 seconds with return value 0
請按任意鍵繼續. . .
這里涉及到遞回,如果沒有這個概念的人,腦子可能彎不過來
大概是這樣執行順序的:
——————————
fun(1)
->fun(2)
--->fun(3)
........
---->fun(99)
把上面的代碼修改下:
#include "stdio.h" void fun(int n) { if(n<100) { printf("fun(%d) ",n); fun(n+1); } printf("fun(%d) ",n); } int main(void) { fun(1); return 0; }
—————————— 代碼輸出 fun(1) fun(2) fun(3) fun(4) fun(5) fun(6) fun(7) fun(8) fun(9) fun(10) fun(11) fun(12) fun(13) fun(14) fun(15) fun(16) fun(17) fun(18) fun(19) fun(20) fun(21) fun(22) fun(23) fun(24) fun(25) fun(26) fun(27) fun(28) fun(29) fun(30) fun(31) fun(32) fun(33) fun(34) fun(35) fun(36) fun(37) fun(38) fun(39) fun(40) fun(41) fun(42) fun(43) fun(44) fun(45) fun(46) fun(47) fun(48) fun(49) fun(50) fun(51) fun(52) fun(53) fun(54) fun(55) fun(56) fun(57) fun(58) fun(59) fun(60) fun(61) fun(62) fun(63) fun(64) fun(65) fun(66) fun(67) fun(68) fun(69) fun(70) fun(71) fun(72) fun(73) fun(74) fun(75) fun(76) fun(77) fun(78) fun(79) fun(80) fun(81) fun(82) fun(83) fun(84) fun(85) fun(86) fun(87) fun(88) fun(89) fun(90) fun(91) fun(92) fun(93) fun(94) fun(95) fun(96) fun(97) fun(98) fun(99) fun(100) fun(99) fun(98) fun(97) fun(96) fun(95) fun(94) fun(93) fun(92) fun(91) fun(90) fun(89) fun(88) fun(87) fun(86) fun(85) fun(84) fun(83) fun(82) fun(81) fun(80) fun(79) fun(78) fun(77) fun(76) fun(75) fun(74) fun(73) fun(72) fun(71) fun(70) fun(69) fun(68) fun(67) fun(66) fun(65) fun(64) fun(63) fun(62) fun(61) fun(60) fun(59) fun(58) fun(57) fun(56) fun(55) fun(54) fun(53) fun(52) fun(51) fun(50) fun(49) fun(48) fun(47) fun(46) fun(45) fun(44) fun(43) fun(42) fun(41) fun(40) fun(39) fun(38) fun(37) fun(36) fun(35) fun(34) fun(33) fun(32) fun(31) fun(30) fun(29) fun(28) fun(27) fun(26) fun(25) fun(24) fun(23) fun(22) fun(21) fun(20) fun(19) fun(18) fun(17) fun(16) fun(15) fun(14) fun(13) fun(12) fun(11) fun(10) fun(9) fun(8) fun(7) fun(6) fun(5) fun(4) fun(3) fun(2) fun(1) 重點在于只有if 判斷為假后,才結束遞回,但是遞回不能無限大,太大了會撐爆堆疊空間的
再看看下面這個高贊的奇葩寫法:
#include <stdio.h> int main() { printf("1"); printf(" "); printf("2"); printf(" "); printf("3"); printf(" "); printf("4"); printf(" "); printf("5"); printf(" "); printf("6"); printf(" "); printf("7"); printf(" "); printf("8"); printf(" "); printf("9"); printf(" "); printf("10"); printf(" "); printf("11"); printf(" "); printf("12"); printf(" "); printf("13"); printf(" "); printf("14"); printf(" "); printf("15"); printf(" "); printf("16"); printf(" "); printf("17"); printf(" "); printf("18"); printf(" "); printf("19"); printf(" "); printf("20"); printf(" "); printf("21"); printf(" "); printf("22"); printf(" "); printf("23"); printf(" "); printf("24"); printf(" "); printf("25"); printf(" "); printf("26"); printf(" "); printf("27"); printf(" "); printf("28"); printf(" "); printf("29"); printf(" "); printf("30"); printf(" "); printf("31"); printf(" "); printf("32"); printf(" "); printf("33"); printf(" "); printf("34"); printf(" "); printf("35"); printf(" "); printf("36"); printf(" "); printf("37"); printf(" "); printf("38"); printf(" "); printf("39"); printf(" "); printf("40"); printf(" "); printf("41"); printf(" "); printf("42"); printf(" "); printf("43"); printf(" "); printf("44"); printf(" "); printf("45"); printf(" "); printf("46"); printf(" "); printf("47"); printf(" "); printf("48"); printf(" "); printf("49"); printf(" "); printf("50"); printf(" "); printf("51"); printf(" "); printf("52"); printf(" "); printf("53"); printf(" "); printf("54"); printf(" "); printf("55"); printf(" "); printf("56"); printf(" "); printf("57"); printf(" "); printf("58"); printf(" "); printf("59"); printf(" "); printf("60"); printf(" "); printf("61"); printf(" "); printf("62"); printf(" "); printf("63"); printf(" "); printf("64"); printf(" "); printf("65"); printf(" "); printf("66"); printf(" "); printf("67"); printf(" "); printf("68"); printf(" "); printf("69"); printf(" "); printf("70"); printf(" "); printf("71"); printf(" "); printf("72"); printf(" "); printf("73"); printf(" "); printf("74"); printf(" "); printf("75"); printf(" "); printf("76"); printf(" "); printf("77"); printf(" "); printf("78"); printf(" "); printf("79"); printf(" "); printf("80"); printf(" "); printf("81"); printf(" "); printf("82"); printf(" "); printf("83"); printf(" "); printf("84"); printf(" "); printf("85"); printf(" "); printf("86"); printf(" "); printf("87"); printf(" "); printf("88"); printf(" "); printf("89"); printf(" "); printf("90"); printf(" "); printf("91"); printf(" "); printf("92"); printf(" "); printf("93"); printf(" "); printf("94"); printf(" "); printf("95"); printf(" "); printf("96"); printf(" "); printf("97"); printf(" "); printf("98"); printf(" "); printf("99"); printf(" "); printf("100"); printf(" "); printf("99"); printf(" "); printf("98"); printf(" "); printf("97"); printf(" "); printf("96"); printf(" "); printf("95"); printf(" "); printf("94"); printf(" "); printf("93"); printf(" "); printf("92"); printf(" "); printf("91"); printf(" "); printf("90"); printf(" "); printf("89"); printf(" "); printf("88"); printf(" "); printf("87"); printf(" "); printf("86"); printf(" "); printf("85"); printf(" "); printf("84"); printf(" "); printf("83"); printf(" "); printf("82"); printf(" "); printf("81"); printf(" "); printf("80"); printf(" "); printf("79"); printf(" "); printf("78"); printf(" "); printf("77"); printf(" "); printf("76"); printf(" "); printf("75"); printf(" "); printf("74"); printf(" "); printf("73"); printf(" "); printf("72"); printf(" "); printf("71"); printf(" "); printf("70"); printf(" "); printf("69"); printf(" "); printf("68"); printf(" "); printf("67"); printf(" "); printf("66"); printf(" "); printf("65"); printf(" "); printf("64"); printf(" "); printf("63"); printf(" "); printf("62"); printf(" "); printf("61"); printf(" "); printf("60"); printf(" "); printf("59"); printf(" "); printf("58"); printf(" "); printf("57"); printf(" "); printf("56"); printf(" "); printf("55"); printf(" "); printf("54"); printf(" "); printf("53"); printf(" "); printf("52"); printf(" "); printf("51"); printf(" "); printf("50"); printf(" "); printf("49"); printf(" "); printf("48"); printf(" "); printf("47"); printf(" "); printf("46"); printf(" "); printf("45"); printf(" "); printf("44"); printf(" "); printf("43"); printf(" "); printf("42"); printf(" "); printf("41"); printf(" "); printf("40"); printf(" "); printf("39"); printf(" "); printf("38"); printf(" "); printf("37"); printf(" "); printf("36"); printf(" "); printf("35"); printf(" "); printf("34"); printf(" "); printf("33"); printf(" "); printf("32"); printf(" "); printf("31"); printf(" "); printf("30"); printf(" "); printf("29"); printf(" "); printf("28"); printf(" "); printf("27"); printf(" "); printf("26"); printf(" "); printf("25"); printf(" "); printf("24"); printf(" "); printf("23"); printf(" "); printf("22"); printf(" "); printf("21"); printf(" "); printf("20"); printf(" "); printf("19"); printf(" "); printf("18"); printf(" "); printf("17"); printf(" "); printf("16"); printf(" "); printf("15"); printf(" "); printf("14"); printf(" "); printf("13"); printf(" "); printf("12"); printf(" "); printf("11"); printf(" "); printf("10"); printf(" "); printf("9"); printf(" "); printf("8"); printf(" "); printf("7"); printf(" "); printf("6"); printf(" "); printf("5"); printf(" "); printf("4"); printf(" "); printf("3"); printf(" "); printf("2"); printf(" "); printf("1"); printf(" "); return 0; }
#include "stdio.h" void fun(int n) { if(n<100) { printf("fun(%d) ",n); fun(n+1); } printf("fun(%d) ",n); } int main(void) { fun(1); return 0; } —————————— 代碼輸出 fun(1) fun(2) fun(3) fun(4) fun(5) fun(6) fun(7) fun(8) fun(9) fun(10) fun(11) fun(12) fun(13) fun(14) fun(15) fun(16) fun(17) fun(18) fun(19) fun(20) fun(21) fun(22) fun(23) fun(24) fun(25) fun(26) fun(27) fun(28) fun(29) fun(30) fun(31) fun(32) fun(33) fun(34) fun(35) fun(36) fun(37) fun(38) fun(39) fun(40) fun(41) fun(42) fun(43) fun(44) fun(45) fun(46) fun(47) fun(48) fun(49) fun(50) fun(51) fun(52) fun(53) fun(54) fun(55) fun(56) fun(57) fun(58) fun(59) fun(60) fun(61) fun(62) fun(63) fun(64) fun(65) fun(66) fun(67) fun(68) fun(69) fun(70) fun(71) fun(72) fun(73) fun(74) fun(75) fun(76) fun(77) fun(78) fun(79) fun(80) fun(81) fun(82) fun(83) fun(84) fun(85) fun(86) fun(87) fun(88) fun(89) fun(90) fun(91) fun(92) fun(93) fun(94) fun(95) fun(96) fun(97) fun(98) fun(99) fun(100) fun(99) fun(98) fun(97) fun(96) fun(95) fun(94) fun(93) fun(92) fun(91) fun(90) fun(89) fun(88) fun(87) fun(86) fun(85) fun(84) fun(83) fun(82) fun(81) fun(80) fun(79) fun(78) fun(77) fun(76) fun(75) fun(74) fun(73) fun(72) fun(71) fun(70) fun(69) fun(68) fun(67) fun(66) fun(65) fun(64) fun(63) fun(62) fun(61) fun(60) fun(59) fun(58) fun(57) fun(56) fun(55) fun(54) fun(53) fun(52) fun(51) fun(50) fun(49) fun(48) fun(47) fun(46) fun(45) fun(44) fun(43) fun(42) fun(41) fun(40) fun(39) fun(38) fun(37) fun(36) fun(35) fun(34) fun(33) fun(32) fun(31) fun(30) fun(29) fun(28) fun(27) fun(26) fun(25) fun(24) fun(23) fun(22) fun(21) fun(20) fun(19) fun(18) fun(17) fun(16) fun(15) fun(14) fun(13) fun(12) fun(11) fun(10) fun(9) fun(8) fun(7) fun(6) fun(5) fun(4) fun(3) fun(2) fun(1) 重點在于只有if 判斷為假后,才結束遞回,但是遞回不能無限大,太大了會撐爆堆疊空間的哦 遞回的文章 C 語言,你真的懂遞回了嗎? 比如這樣:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/135377.html
標籤:C
上一篇:學習第39天
