从一个简单的程序想到的3点建议

/*

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去
掉不满足条件的排列。 

*/

#include <stdio.h>

int main(int argc, char *argv[])

/*这是我想说的第一点,网上给的答案头文件都是这样的 main(),相信现在还有很多人
是这样用的,可能有些人会说The C Programming Language也是这样写的,当然这没错
,只是这是以前的C标准,而最新的C99标准定义头文件只有两种正确的表示方式,一种
就是int main(int argc, char *argv[]),而另一种是int main(void),希望大家使用
最新的标准定义
*/
 
{
int a;
int b;
int c;
int num;

for(a=1;a<5;a++)
for(b=1;b<5;b++)
for(c=1;c<5;c++)
       {
       num=a*100+b*10+c;
     

       if(a!=b&&a!=c&&b!=c)
            {
            printf("%d/n",num);
            }
 /*
 这里可能有人问明明就一个printf函数,为什么还要用一对中括号括起来?
 这是一种习惯,当以后程序的代码不断增加的时候,如果有一天你的某个
 if语句下面只有一条语句,你也没有加中括号,而恰巧你又要加一句代码
 上去,又恰巧你加完后却忘了加中括号,可能你会说哪有这么多恰巧,可
 事实确实如此,至少我曾遇到过。在这里的建议是凡是for语句和if语句,
 哪怕其后面只有一个语句,也建议把它用一对中括号括起来。
 
 可参见林锐博士的《高质量程序设计指南——C/C++语言》
 */
 
 }

 return 0;
 
 /*可能会有人问这里为什么要返回一个0?
 通常来说,不返回这个0,也不会造成什么危害,一个返回值为整型的函数如果返
 回失败,实际上是隐含地返回了某个垃圾整数。只要这个整数不被用到,就无关紧要。
 然而,在某些情形下函数main的返回值并非无关紧要。大多数C语言实现都通过函数
 main的返回值来告知操作系统该函数的执行是成功的还是失败的。
 
 典型的处理方案是,返回值为0代表程序执行成功,返回值非0则表示程序执行失败。
 如果一个程序的main函数并不返回任何值,那么有可能看上去执行失败。如果正在
 使用一个软件管理系统,该系统关注程序被调用后执行时成功还是失败,那么很可
 能得到令人惊讶的结果。
 
 可参见《C陷阱与缺陷》人民邮电出版社第62页
 */
}

原文地址:https://www.cnblogs.com/pang123hui/p/2309988.html