什么是好代码?如何写出高质量代码?

您所在的位置:网站首页 画字的结构是什么结构 什么是好代码?如何写出高质量代码?

什么是好代码?如何写出高质量代码?

2024-07-15 16:50| 来源: 网络整理| 查看: 265

结构化编程的优点与反思

这周在上程序设计课的时候,老师的一个词让我印象很深刻,那就是结构化编程,也正是今天要谈论的主题。从八月份开始自学C语言,懵懵懂懂的学习了一些语法,会初步使用指针与函数。也接触了一些基本算法,如排序算法中的桶排序、快速排序、冒泡排序,深度优先搜索,简易贪心、栈、队列、枚举算法等等。

经过两个月的刷题训练,回想起每次的做题流程,我记得很清楚当时我做的第一道编程题是“韩信点兵”。一开始是完完全全的懵,虽然学会了一些语法,但完全不知从何下手,再加上那道题是别人博客里面的,没办法在平台提交检测,导致检验方法有限。

之后学习了进阶的语法,也开始在平台写题了,没有思路的时候我会用//打注释来帮助自己一步一步的推敲算法,或者在草稿纸上设计步骤。

再然后,一方面是自己实力的增加,一方面是懒!所以现在做题就完全不打注释也不用草稿了(在写技术博客时会适当添加注释帮助读者理解)基本上看完题(因为看得很潦草,所以有时候经常因为看错题而卡题…)就直接按照自己的思路往下打代码,这就会导致整个的代码一团乱,让人很难以阅读(就连我在复盘再次阅读时都很吃力)的理解。

质量差的代码: #include int main(void){ int x; int one, two, five; ==================================================================== scanf("%d", &x); for( one = 1; one < x*10; one++ ){ for ( two = 1; two < x*10/2; two++ ){ for ( five = 1; five < x*10/5; five++ ){ if ( one + two*2 + five*5 == x*10 ){ printf("可以用%d个1角和%d个2角和%d个5角合成%d元\n", one, two, five, x); goto out; } } } } ==================================================================== out: return 0; }

虽然这道题AC了,但上面框起来的部分就是不太好的写法,首先是for的多重循环结构会让人很晕,第一眼很难理解(也有可能只是对于我而言hhh)再其次就是结构化编程很忌讳的goto,跳来跳去的结构一不小心就会导致一碗面的惨剧。

高质量的代码:

原题地址:笨小猴

#include #include//strlen函数 using namespace std; ==================================================================== char s[110]; const int prime[25]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};//打表 int sum[26];//记录和 ==================================================================== int main(){ ==================================================================== int maxn=0,minn=110;//最大值和最小值,注意初始化 scanf("%s",s);//用scanf读入字符数组时,注意不用加& int len=strlen(s);//求字符串长度的函数 ==================================================================== ==================================================================== for(int i=0;i0&&sum[i]


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3