第2,3,4,11章学习心得
在源代码设计,实现,源代码控制的两人合作任务中我们选择了把一串数字逆序输出的问题。首先我们对这个问题进行了分析:要做什么,怎么做然后对代码进行编译。源代码如下:
#include "stdio.h“
int main()
{
long int num,temp,i=0;
printf("请输入一个数字\n");
scanf("%ld",&num);
while(num>0)
{
temp=num%10;
++i;
printf("%d",temp);
num=num/10;
}
return 0;
}
在代码成功地通过了编译器的编译后我们对代码进行了复审其中包括了自我复审以及同伴复审。在复审的过程中我们发现了算法不够优化的问题。于是我们另外一位同学编写了更为优秀,时间复杂度更小的代码。源码如下:
#include"stdio.h"
#define len 10;
int main(void)
{
int a[len];
int i, j, temp;
for(i = 0; i <len; i++)
scanf("%d",&a[i]);
for(i = 0; i < len/2; i++)
{
j = len - 1 - i;
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
for(i = 0; i < LEN; i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
利用这种算法实际只需要交换n/2次大大提高了代码运行的效率同时也让我感受到了二人合作的好处。