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

微信扫描二维码,关注我的公众号 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

南京大学2021计算机考研复试线是多少,34所自划线院校2021考研复试分数线-2021南京大学考研分数线已公布...

2021南京大学考研复试分数线已公布&#xff01;点击查看>>34所自划线院校2021考研复试分数线。2021考研分数线变化趋势会是怎样的呢&#xff1f;战过初试•赢过复试>>中公考研陪你决战考研复试场​南京大学2021年硕士研究生复试基本分数线一、学术学位报考学科门类…

有人知道 I3C 吗?

我们知道I2C、SPI、UART、但是应该很少有人知道I3C&#xff0c;不过它确实是存在的。在完善的I2C接口标准之后&#xff0c;I3C即将进入嵌入式市场。I3C标准由MIPI联盟开发&#xff0c;现已扩展到更广泛的市场&#xff0c;该标准将I2C&#xff0c;UART和SPI组合为10Mbit / s&…

清华北大计算机考研报录比,2020年考研,清华北大报考人数对比,占考研总人数14%...

原标题&#xff1a;2020年考研&#xff0c;清华北大报考人数对比&#xff0c;占考研总人数14%2020年考研341万人同进考场&#xff0c;考研报名人数超过300万人&#xff0c;创造历史新高。因此2020年考研被公认为考研难度最大的一年。341万考研人&#xff0c;有多少人报考清华北…

洛谷树剖模板题 P3384 | 树链剖分

原题链接 对于以u为根的子树,后代节点的dfn显然比他的dfn大,我们可以记录一下回溯到u的dfn,显然这两个dfn构成了一个连续区间,代表u及u的子树 剩下的就和树剖一样了 1 #include<cstdio>2 #include<algorithm>3 #include<cstring>4 #define N 1000105 typedef…

我同学

周六在朋友圈提到的&#xff0c;我有一个在三星工作、从事camera方向研究的同学&#xff0c;他在去三星之前已经做了很多年camera了&#xff0c;之前在知识星球也给大家推荐了他的技术公众号&#xff0c;对喜欢或者从事camera研究的会非常有帮助&#xff0c;建议大家关注一下。…

学教育成空中楼阁 巨额学费背后却是失业风险

央视国际 [url]www.cctv.com[/url]  2006年11月13日 09:22 来源&#xff1a; 大学的病&#xff0c;其病在学。现在的大学&#xff0c;大家都很忙&#xff0c;但大学要教什么&#xff0c;怎么教&#xff0c;其实没人操心。这样教出的学生&#xff0c;不会做人&#xff0c;也不…

计算机组成原理填空题目,(计算机组成原理练习题.doc

(计算机组成原理练习题1.填空题(1)寄存器寻址方式中&#xff0c;指令的地址码部分给出 寄存器号 &#xff0c;操作码在 寄存器 中&#xff1b;直接寻址方式指令中&#xff0c;直接给出 操作数的地址 &#xff0c;需访问 主存 一次可获得操作数&#xff1b;存储器间接寻址方式指…

Uva 201 Squares (暴力 + 枚举)

【题意】 给出 n*n 的 点 H 横向 V 纵向 &#xff08;注意&#xff09; V 想 I,j 相反 问 边 为1 &#xff0c;2 &#xff0c; 3 。。。。 n 的 正方向有几个 【思路】 n 很小 直接暴力 枚举 枚举 两个点&#xff0c; 看看 从 左上角 到右下角 &#xff08;变成为 s的…

自己都不觉得自己值钱,别人怎么觉得你值钱?

今天跟一个同学聊天&#xff0c;他最近正在找工作&#xff0c;找了一家外包企业拿到offer&#xff0c;对方开了薪资&#xff0c;他问我「发哥&#xff0c;这个薪资没有问题吧&#xff1f;」。薪资这个问题&#xff0c;我之前已经给出过建议&#xff0c;新企业的薪资最好能能让你…

ASP.NET AJAX入门系列(10):Timer控件简单使用

本文主要通过一个简单示例&#xff0c;让Web页面在一定的时间间隔内局部刷新&#xff0c;来学习一下ASP.NET AJAX中的服务端Timer控件的简单使用。主要内容Timer控件的简单使用1&#xff0e;添加新页面并切换到设计视图。2&#xff0e;如果页面没有包含ScriptManager控件&#…

全国计算机等级考试暨南大学,9月暨南大学计算机等级考试报名时间通知

全国计算机等级考试暨南大学珠海校区考点2017年下半年(第49次)全国计算机等级考试已经开始报名&#xff0c;以下是小编收集的暨南大学计算机等级考试报名时间通知&#xff0c;希望大家认真阅读!报考事项通知1、网上报名时间为2017年6月15日17:00至30日12:00。广东省全国计算机等…

使用OpenXml打开word文档中嵌入的另一个文档

今天在写字处理评分程序的时候遇到一个之前没有经历过的场景&#xff1a;在给定的字处理素材文档文档中嵌入了另一个字处理文档&#xff0c;题目要求既要对素材文档进行修改&#xff0c;也要对嵌入的文档进行格式调整。打开嵌入的文档对于操作者来说非常容易&#xff0c;只需双…

ANSI是什么编码?

原文&#xff1a;http://www.cnblogs.com/malecrab/p/5300486.html用Notepad创建一个文本文件text.txt&#xff0c;其默认编码格式为ANSI&#xff08;乍看之下&#xff0c;还以为是ASCII呢&#xff09;&#xff0c;输入汉字居然不是乱码&#xff1a;保存为test.txt&#xff0c;…

Run ASMX Without IIS

http://msdn.microsoft.com/msdnmag/issues/04/12/ServiceStation/default.aspxExcellent, but how about on PDA? I need a SOAP Server running on PDA:( 转载于:https://www.cnblogs.com/swnuwangyun/archive/2006/11/16/562499.html

R语言数据分析过程

R语言数据分析前期&#xff1a;预处理过程&#xff0c;供自己查阅&#xff0c;欢迎大家指正。 利用R语言导入数据&#xff1a; taobao<-read.csv("taobao.csv",stringsAsFactors F) 我最常用到就是read.csv&#xff0c;其中stringsAsFactorsF很重要&#xff0c;不…

苏州,遇见NXP痞子衡

昨天的文&#xff0c;今天发--晚上打球照片&#xff0c;大家都是1.8的&#xff0c;结果拍出来变矮了因为公司项目问题&#xff0c;今天飞苏州&#xff0c;昨晚上就得到了命令&#xff0c;早上直接从家里开拔&#xff0c;这次去苏州提前跟痞子衡说了情况&#xff0c;原因是上次我…

计算机组成原理节拍分为几种,计算机组成原理习题答案第七章

计算机组成原理题答案,计算机组成原理,习题答案&#xff11; &#xff0e;控制器有哪几种控制方式&#xff1f; 各有何特点&#xff1f;解&#xff1a;控制器的控制方式可以分为&#xff13; 种&#xff1a;同步控制方式、异步控制方式和联合控制方式。同步控制方式的各项操作都…

Android中GC的触发时机和条件

本文分析基于Android R(11)源码Java对象的创建由Allocator负责&#xff0c;回收由Collector负责。从Android O开始&#xff0c;对于前台应用默认的GC Collector是CC(Concurrent Copying) Collector&#xff0c;与之相匹配的Allocator则是Region-based Bump Pointer Allocator(w…

java console 到文件

System.setOut(new PrintStream(new FileOutputStream("c:\\temp\\test1.txt"))); System.out.println(x);转载于:https://www.cnblogs.com/kakaisgood/p/7910620.html

计算机安全可靠替代工程,基于安全可靠软硬件的党政军OA系统的整系统优化方法与研究-计算机技术专业论文.docx...

万方数据万方数据摘要“十二五”期间&#xff0c;基于国家重大科技专项“核高基”前一阶段的基础软硬件产 品技术成果&#xff0c;以应用示范为牵引&#xff0c;全面验证、推广“十一五”“核高基”成果成为 工作重点和主题。由于国产关键基础软硬件产品不成熟以及缺乏系统性的…