我觉得这是一个送分题,奈何知乎人才太多了,给出了各种古怪的写法,如果是做项目的话,我比骄建议一些正常的写法,就是大家都能看得懂的,不要搞什么花里胡哨,不过你要是交流的话,既然是交流,我不觉得要多正规,即使你的观点有问题,我觉得也可以拿出来说说,毕竟是交流,各抒己见,发表自己的观点是最重要的。

---- 为什么不建议大家花里胡哨

我觉得花里胡哨之前首先是你基础非常好了再去花里胡哨,不要自己很多基础的东西还搞不清楚就去花里胡哨。


---- 看这个代码,题外话

看看基础搞不明白的杀伤有多大。

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该如何编写?相关推荐

  1. Office2016使用HP打印机只能打印一次再打印就假死怎么办?

    前几天把PC中使用了多年的Office 2013卸载了,安装了Office 2016.今天在打印文档时发现,第一次能够顺利打印,而再次打印则会出现Office软件卡死的现象.随后在"脚本之家 ...

  2. c语言for循环1到100奇数和,使用for循环结构编写程序计算1到100之间的奇数之和、偶数之和,输出格式为“1到100奇数和=xxx;1到100偶数和...

    题目: 使用for循环结构编写程序计算1到100之间的奇数之和.偶数之和,输出格式为"1到100奇数和=xxx:1到100偶数和=xxx". 解答: int jishuhe = 0 ...

  3. for的嵌套c语言用星号表示三角形ppt,C语言编程求助!“使用循环语句打印出星号三角形”(如下图)...

    int i,j,n;scanf("%d",&n);for(i=0 由热心网友提供的答案1: #include void main() { int i,j,k; f #inc ...

  4. c语言编程输出100以内所有6的倍数的数,第8天学C语言(一点练习,例如打印1~100之间所有3的倍数的数字)...

    (2020.9.12) 练习1:从大到小输出三个值 算法实现 a中放最大值 b次之 c最小 int a = 0; int b = 0; int c = 0; scanf_s("%d%d%d& ...

  5. 【c语言】一个整数加上100后是一个完全平方数,再加上168又是一个完全平方数,问该数是多少?

    一个整数加上100后是一个完全平方数,再加上168又是一个完全平方数,问该数是多少? 在100000以内判断 定义三个变量i,x,y 利用for循环让i在100000以内从1增加到100000,在循环 ...

  6. Zebra斑马打印机指令编程进阶(语言通用)--利用指令绘制出图像打印

    之前介绍过Zebra的入门打印,由于Zebra指令繁多,并且自带字体不能打印中文,如果打印内容中有中文的话,还是推荐大家先用Graphic类先画好自己想要的image,然后将整张图片进行打印.而且调试 ...

  7. c语言100以内奇数的和为多少,编写C#程序,计算100以内所有奇数的和。谢谢了,大神帮忙啊...

    编写C#程序,计算100以内所有奇数的和.谢谢了,大神帮忙啊以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 编写C#程序 ...

  8. c语言输出字母随机数,你好,怎样用c语言输出一个1到100的随机数

    你好,怎样用c语言输出一个1到100的随机数以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 你好,怎样用c语言输出一个1 ...

  9. c语言随机产生100个字母,C语言实现生成1到100随机数的方法

    C语言实现生成1到100随机数的方法 发布时间:2020-06-29 14:08:59 来源:亿速云 阅读:7054 作者:Leah 本篇文章为大家展示了C语言实现生成1到100随机数的方法,代码简明 ...

最新文章

  1. notepad++ 换行技巧 log换行
  2. 打基础和俄罗斯方块的关系
  3. cocos2d-x游戏开发(十三)细说回调函数
  4. 软件项目管理相关概念介绍笔记
  5. 考上MBA,为自己装一双翅膀
  6. 线性调频信号(LFM)时域与频域分析
  7. 几种镜像恒流源电路分析!
  8. 记ubuntu20.04无线网卡驱动安装
  9. Ruby erb模板文件生成html网页的示例
  10. 1个月拿下7个offer! 5分钟掌握81个数学模型,小白也能逆袭数据分析师!
  11. 中国石油大学《计算机网络课程设计》第三次在线作业
  12. 如何查看linux进程?
  13. 操作系统——文件管理学习笔记
  14. 摘要、引言和结论的六项区别
  15. IMAX中国创历史最佳十月纪录;强生、施华洛世奇将再亮相进博会;全球最大最高摩天轮迎来首批游客 | 美通社头条...
  16. 让图片垂直居中的方式
  17. Allegro 基本操纵
  18. 开源免费的HTML5游戏引擎——青瓷引擎(QICI Engine) 1.0正式版发布了!
  19. [48] 用《六人行》的调调说话!
  20. 618观察,拼购成新势力,一线城市和下沉市场并重成趋势

热门文章

  1. PHP中封装mysql数据库链接(简单版)
  2. ubuntu下数据库的导入导出
  3. Getting Started with the Table Component
  4. 深度学习案例之基于 CNN 的 MNIST 手写数字识别
  5. 内核启动的汇编阶段——head.S文件
  6. BZOJ 1845三角形面积并
  7. xcode10 自定义代码块
  8. Scrapy学习-25-Scrapyd部署spider
  9. 《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #15 ramzswap
  10. Navicat Premium 实用快捷键