上一页 下一个

C语言编程基础

库在C语言中非常重要,因为C语言只支持它所需要的最基本的特性。C甚至不包含从键盘读取和写入屏幕的I/O函数。任何超出基本语言的扩展都必须由程序员编写。生成的代码块通常被放置在使它们易于重复使用。我们已经看到了标准I/O,或者的头,库已经存在:标准库用于标准I/O、数学函数、字符串处理、时间操作等。您可以在自己的程序中使用库来将程序拆分为模块。这使得它们更容易理解、测试和调试,也使得重用您编写的其他程序的代码成为可能。

您可以轻松地创建自己的库。例如,我们将从本系列前一篇文章中选取一些代码,并用其中的两个函数创建一个库。下面是我们将开始的代码:

广告

#include  #定义MAX 10 int [MAX];int rand_seed = 10;int rand() /* from K&R -产生一个0到32767之间的随机数。*/ {rand_seed = rand_seed * 1103515245 +12345;返回(unsigned int)(rand_seed / 65536) % 32768;} void main() {int i,t,x,y;/*填充数组*/ (i=0;i < MAX;I ++) {a[I]=rand();printf (" % d \ n”,[我]);} /*冒泡排序数组*/ for (x=0; x < MAX-1; x++) for (y=0; y < MAX-x-1; y++) if (a[y] > a[y+1]) { t=a[y]; a[y]=a[y+1]; a[y+1]=t; } /* print sorted array */ printf("--------------------\n"); for (i=0; i < MAX; i++) printf("%d\n",a[i]); }

这段代码用随机数填充数组,使用冒泡排序对它们排序,然后显示排序后的列表。

以冒泡排序代码为例,并使用您在前一篇文章中所学到的内容从中生成一个函数。因为两个数组一个和常量MAX是全局已知的,你创建的函数不需要参数,也不需要返回结果。18新利最新登入但是,对于x、y和t,应该使用局部变量。

一旦你测试了函数,以确保它是工作的,传递元素的数量作为参数,而不是使用MAX:

#include  #定义MAX 10 int [MAX];int rand_seed = 10;/* from K&R -返回0到32767之间的随机数。*/ int rand() {rand_seed = rand_seed * 1103515245 +12345;返回(unsigned int)(rand_seed / 65536) % 32768;} void bubble_sort(int m) {int x,y,t;为(x = 0;X < m-1;x++) for (y=0;Y < m-x-1; y++) if (a[y] > a[y+1]) { t=a[y]; a[y]=a[y+1]; a[y+1]=t; } } void main() { int i,t,x,y; /* fill array */ for (i=0; i < MAX; i++) { a[i]=rand(); printf("%d\n",a[i]); } bubble_sort(MAX); /* print sorted array */ printf("--------------------\n"); for (i=0; i < MAX; i++) printf("%d\n",a[i]); }

你也可以推广bubble_sort函数可以通过传入来实现一个作为参数:

Bubble_sort (int m, int a[])

这一行表示,“接受任意大小的整数数组a作为参数。”身体里什么都没有bubble_sort函数需要改变。要调用bubble_sort,将调用更改为:

bubble_sort (MAX);

请注意,没有在函数调用中使用,即使排序将改变一个.一旦你理解了指针,你就会明白其中的原因了。

特色
Baidu