HOMEWORK-2

没什么超乎常人的技能吧,我想。关于C的学习之前一直是自学,上了大学也是吃老底(上一篇提到了),因为这个学期一直在学matlab,C除了帮人写过作业教过课自己也没写点什么。

  • 指针的概念还算清楚,毕竟经常用嘛。stream的概念是在大学接触的,我形容不了,结构上就是个连续没有绝对位置的序列,对数据一视同仁。
  • 将问题分解成一个一个的步骤,按部就班的做就是面对过程编程。之前上课讲的就是这样的。
  • 在一个文件中提模块,肯定要提及static关键字的含义。这是之前上课被严重忽视的内容(反正我们老师没讲)。在网上看了许许多多解释,很多人认为是一个静态变量区(不知道侧重点是啥)。我能理解的是模块编程的模块,将程序的各个功能划分后通过调用实现,这样能做到在之后的修改中方便维护。同样的在一个项目中可以通过多个子程序实现目标。在java学习中曾听学长讲过一个图书管理系统的结构,初步有个了解。在C中写过.h文件来支持程序。在matlab中经常调用C的程序,如果说C编写的程序是为了实现某个功能,那对于我matlab想做的最终实现的而言C就是一个模块。
  • “高内聚,低耦合”是面对对象编程中的特点,我需要进一步学习。
  • 公文写作能力正是我欠缺的,希望通过写博客等方式加以锻炼,避免我每年写工作总结报告格式都要询问他人。

数组复制

方案一

#include<stdio.h>
#include<string.h>

int main()

{
	int a[10]={6,5,4,3,7,8,9,1,0,2};
	int b[10];
	int i;
	for (i=0;i<10;i++)
	printf("%d ",a[i]);
	printf("\n");
	memcpy(b,a,sizeof(int)*10); 
	for (i=0;i<10;i++)
	printf("%d ",b[i]);
}

方案二

void copy(int a1[],int a2[])
{

 int i;
 for (i=0;i<10;i++)
  a2[i]=a1[i];  
 return; 
}

查询

int a[10]={6,5,4,3,7,8,9,1,0,2};
int b[10];
void check(int k,int t)
{
	if (t == 0) {printf("Nope\n"); return;	}
    if (a[t] == k) {printf("Yes %d\n",t+1); return;	}
    check(k,t-1);
 } 

排序

int comp(const void*a,const void*b)
{
return *(int*)a-*(int*)b;
}
 qsort(a, length(a), sizeof(type), comp);

统计文件个数

用system函数调用dos命令dir查找相关文件个数,之后逐个打开统计回车符个数。Linux调用find命令 find / -type f -name "*.cpp"

posted @ 2017-02-11 04:24  20155117王震宇  阅读(101)  评论(1编辑  收藏  举报