您好,登錄后才能下訂單哦!
如果不用循環、遞歸、goto,如何才能用 C++ 從 1 打印到 100 ?
看到這樣一篇文章。上面有很多種解法,下面介紹幾個好理解一點的:
第一種:在代碼中執行系統指令
#include <stdlib.h> int main() { return system("seq 1 100"); }
第二種:利用信號捕捉
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <signal.h> int i = 0; void sig_alarm_handler(int signal) { ++i; printf("%dn", i); if(i < 100) alarm(1); else exit(0); } int main() { signal(SIGALRM, sig_alarm_handler); alarm(1); int x; scanf(" %d",&x); return 0; }
第三種:利用模板參數與繼承特性
#include <stdio.h> template<int N> struct X : X<N-1> { X() { printf("%dn", N); } }; template<> struct X<0> {}; int main() { X<100> x; return 0; }
第四種:用靜態變量和數組
#include <stdio.h> struct X { static int i; X() { ++i; printf("%dn", i); } }; int X::i = 0; int main() { X arr[100]; return 0; }
就看懂了這幾種,感覺簡直太神奇了!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。