【从零开始的 C 语言笔记】番外篇-注解

其实这个篇章放在这里有点小晚了,一直觉得好像单独放成一篇有点哪里不对,本来想说因为不是必要的一个语法,但对于写程式来说又有一定的重要性。

所以想了想还是要介绍一下,不过就当成番外篇来放吧!


程式设计的原则

要说到什么重要什么不重要,我们来提一下程式设计中重要的原则有什么:

避免重複
如果一段程式码一直不断重複地出现,那我们可以将它利用迴圈或副函式等方式,来简化整体的程式,让程式码不再那么冗长。

e.g. 比如说我们今天要写一个程式,先输入一个数字,然后我们要列印出所有小于它的质数,并重複两次。
(1) 如果是这样子放两次程式码是很冗长的。

#include <stdio.h>int is_prime(int);int main(){    int input_num = 0;    //第一次输入    scanf("%d", &input_num);    //判断输入的整数是否大于1,否则重新输入    while(input_num<2){        scanf("%d", &input_num);    }    //开始处理    for(int i=2; i<=input_num; i++){        //回传1就是质数,要列印出来        if(is_prime(i)==1){            printf("%d ", i);        }    }        printf("\n==========\n");    //第二次输入    scanf("%d", &input_num);    //判断输入的整数是否大于1,否则重新输入    while(input_num<2){        scanf("%d", &input_num);    }    //开始处理    for(int i=2; i<=input_num; i++){        //回传1就是质数,要列印出来        if(is_prime(i)==1){            printf("%d ", i);        }    }        return 0;}int is_prime(int num){    //判断状态    int k=0;    for(int i=2; i<num; i++){        //可被整除的话,则不是质数        if(num%i==0){            k=1;            break;        }    }    //k=0时,是质数    if(k==0){        return 1;    }    //k=1时,不是质数    else{        return 0;    }}

http://img2.58codes.com/2024/20142565ugKy9PbwTb.png

(2) 但我们可以透过迴圈来替代重複次数,减少多余的重複程式码

#include <stdio.h>int is_prime(int);int main(){    int input_num = 0;    for(int t=0; t<2; t++){        scanf("%d", &input_num);        //判断输入的整数是否大于1,否则重新输入        while(input_num<2){            scanf("%d", &input_num);        }        //开始处理        for(int i=2; i<=input_num; i++){            //回传1就是质数,要列印出来            if(is_prime(i)==1){                printf("%d ", i);            }        }        printf("\n==========\n");    }    return 0;}int is_prime(int num){    //判断状态    int k=0;    for(int i=2; i<num; i++){        //可被整除的话,则不是质数        if(num%i==0){            k=1;            break;        }    }    //k=0时,是质数    if(k==0){        return 1;    }    //k=1时,不是质数    else{        return 0;    }}

http://img2.58codes.com/2024/20142565Gtv6zN0eMp.png

可读性
一班来说我们会力求程式码简明易懂,会加上适当的注解或分段使用单一功能的函式,使得整体程式码可以在多年后重看、甚至其他人也能快速了解,虽然写程式的当下,大家应该都很清楚自己在做什么,但隔了一段时间可就不一定了。
#include <stdio.h>int is_prime(int);int main(){    int input_num = 0;        scanf("%d", &input_num);    //判断输入的整数是否大于1,否则重新输入    while(input_num<2){        scanf("%d", &input_num);    }    //依序使用迴圈跑小于或等于输入整数之数,并判断是否质数、要不要列印    for(int i=2; i<=input_num; i++){        //回传1就是质数,要列印出来        if(is_prime(i)==1){            printf("%d ", i);        }    }    return 0;}int is_prime(int num){    //判断状态    int k=0;    for(int i=2; i<num; i++){        //可被整除的话,则不是质数        if(num%i==0){            k=1;            break;        }    }    //k=0时,是质数回传1    if(k==0){        return 1;    }    //k=1时,不是质数回传0    else{        return 0;    }}
可维护性
一般来说我们会把单独功能,拆解出一个函式来处理,因为所有程式码都塞在main function时,是非常杂乱不堪的,可阅读性也会很低,所以我们会尽量让功能的函式独立出来,以求维护、更新时可以快速找到、修改目标,甚至也可以重複使用。

像是以下就是判断质数的函式

int is_prime(int num){    //判断状态    int k=0;    for(int i=2; i<num; i++){        //可被整除的话,则不是质数        if(num%i==0){            k=1;            break;        }    }    //k=0时,是质数回传1    if(k==0){        return 1;    }    //k=1时,不是质数回传0    else{        return 0;    }}

正确性
相信正确性是一个非常基础的事情吧,如果连基本需求都有错误、做不到,这个程式可以说不需要存在了,甚至有时候一点误差就会产生严重的后果,所以我们在写程式时必须时时测试,并即时更正找到的bug。

执行效率
在进行程式设计时,我们需要注意程式的效率,可以注意演算法中提到的时间複杂度,越是能简化次数,程式执行的效率越佳。

int is_prime(int num){    //判断状态    int k=0;    for(int i=2; i<=sqrt(num); i++){        //可被整除的话,则不是质数        if(num%i==0){            k=1;            break;        }    }    //k=0时,是质数回传1    if(k==0){        return 1;    }    //k=1时,不是质数回传0    else{        return 0;    }}

注解的使用

介绍语法说明//单行注解在注解的最左侧加入「//」,就可以让程式忽略它,不产生语法错误。/多行注解/使用包住「/* */」注解,就可以写多行的注解了。应用
#include <stdio.h>int main(){    int input_num = 0;        /* 第一部分    输入处理 */        scanf("%d", &input_num);    //判断输入的整数是否大于1,否则重新输入    while(input_num<2){        scanf("%d", &input_num);    }    /* 第二部分    列印星星的部分 */        //行数    for(int i=1; i<=input_num; i++){        //单行星星数        for(int j=0; j<i; j++){            printf("*", i);        }        printf("\n");    }    return 0;}

http://img2.58codes.com/2024/2014256592jaZhCpZW.png


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章