c语言从1打印到100再打印到1该如何编写?
我覺得這是一個送分題,奈何知乎人才太多了,給出了各種古怪的寫法,如果是做項目的話,我比驕建議一些正常的寫法,就是大家都能看得懂的,不要搞什么花里胡哨,不過你要是交流的話,既然是交流,我不覺得要多正規,即使你的觀點有問題,我覺得也可以拿出來說說,畢竟是交流,各抒己見,發表自己的觀點是最重要的。
---- 為什么不建議大家花里胡哨
我覺得花里胡哨之前首先是你基礎非常好了再去花里胡哨,不要自己很多基礎的東西還搞不清楚就去花里胡哨。
---- 看這個代碼,題外話
看看基礎搞不明白的殺傷有多大。
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?with?return?value?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 判斷為假后,才結束遞歸,但是遞歸不能無限大,太大了會撐爆棧空間的哦
遞歸的文章
C 語言,你真的懂遞歸了嗎?
比如這樣
再看看一個高贊的奇葩寫法
作者:已注銷了 鏈接:https://www.zhihu.com/question/420856018/answer/1474402510 來源:知乎 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。#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; }?推薦閱讀:
? ??專輯|Linux文章匯總
? ??專輯|程序人生
? ??專輯|C語言
嵌入式Linux
微信掃描二維碼,關注我的公眾號?
總結
以上是生活随笔為你收集整理的c语言从1打印到100再打印到1该如何编写?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vscode阅读linux源码
- 下一篇: [芦半山]Binder的异常机制