我想知道,如何以完美的专业风格编写程序.很多时候我们编写了一个非常好的程序/代码来提供准确的输出.一个人可能会使用最好的算法来解决给定的问题.
但对于正在阅读您的代码以供他/她参考的人,由于不正确使用变量/函数名称而变得难以理解代码.(以及许多其他问题)
那么如何以专业的方式实现编写代码的完美性呢?
您可以直接编辑以下代码来详细说明您的想法. (不要编辑问题中的代码:)
您也可以以专业的方式在最后重写完整的代码.将会提供很多帮助.
(C中的简单堆排序算法)
#include<stdio.h>
#include<conio.h>
void insert(int i);
void swap(int *,int *);
void heap_sort(int);
int a[20];
void main()
{
int n,i;
clrscr();
printf("Enter the no of elements : ");
scanf("%d",&n);
printf("\nEnter the elements : \n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
heap_sort(n);
printf("\nSorted array is : \n");
for(i=0;i<n;i++)
printf("\t%d",a[i]);
getch();
}
void swap(int *p,int *q)
{
int temp;
temp=*p;
*p=*q;
*q=temp;
}
void heap_sort(int n)
{
int x=1,i;
while(x<n)
{
for(i=1;i<=n-x;i++)
insert(i);
swap(&a[0],&a[n-x]);
x++;
}
}
void insert(int i)
{
int j=(i-1)/2,item=a[i];
while((i>0) && (item>a[j]))
{
a[i]=a[j];
i=j;
j=(i-1)/2;
}
a[i]=item;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
看这个:
void main ()
{
int n, i;
clrscr ();
printf ("Enter the no of elements : ");
scanf ("%d", &n);
printf ("\nEnter the elements : \n");
for (i = 0; i < n; i++)
scanf ("%d", &a[i]);
heap_sort (n);
printf ("\nSorted array is : \n");
for (i = 0; i < n; i++)
printf ("\t%d", a[i]);
getch ();
}
Run Code Online (Sandbox Code Playgroud)
现在好多了,不是吗?
避免使用无意义的单字母变量名称.它们是神秘的,并且没有向读者传达任何信息(并且在六个月之后传达给自己).
必要时添加评论.如果您看到某些代码可能不清楚,请对其进行评论.如果您使用某种黑客或技巧,请描述它,它是什么以及为什么需要它.如果使用某种算法(尤其是数学计算),请参考它.
避免使用很长的函数体.如果你看到一个函数得到太多的东西,重构它.将共同和重复的部分提取到共享和辅助函数中,以便阅读代码的人可以看到函数的概述.
避免在代码中使用魔术数字.不要在代码中直接放置一些抽象数字(3,17,135等).在某处声明常量并在代码中引用它们.这样,它只会对您的代码产生一致的影响.很容易忘记更改......好吧,比如,代码中的26个数字中有3个使用.
文本字符串也是如此.在资源,外部文件中将它们声明为字符串常量,并在代码中使用它们.
| 归档时间: |
|
| 查看次数: |
3862 次 |
| 最近记录: |