⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c08_12.c

📁 it can help you know C++ souce program quckily
💻 C
字号:
#include <stdio.h>
#include <string.h>
#define N 5

void sort(char *name[],  int);      /*  声明排序函数原型  */
void print(char *name[], int);      /*  声明显示书名的函数 */

int main()
{
	static char		name[][80] = {"The program of C", 
									"Thinking in C++", 
									"The program of Java", 
									"Oracle 9i", 
									"The program of Delphi"};
	char	*point[N];
	int		j;

	/*字符指针数组初始化*/
	for (j=0; j<N; j++)
		point[j]=name[j];
	/*输出数组原来的样子*/
	printf("图书名在排序前的情况:\n");
	print(point,N);
	sort(point, N);			/* 排序 */

	printf("\n图书名在排序后的情况:\n");
	print(point, N);		/* 输出 */

	return 0;
}

/*函数定义部分   选择排序(升序)*/
/* 找出最小的元素和第一个交换,再从剩下的元素中找出最小的和第二个交换,依次下去,直到全部排列完毕 */ 
void sort(char *name[], int n) 
{
	char	*temp;
	int		i, j, k;

	for(i=0; i<n-1; i++)		/* n个字符串,外循环n-1次 */
	{
		k = i;
		for(j=i+1; j<n; j++)	/* 内循环 */
			if (strcmp(name[k], name[j]) > 0)
				k = j;
				/* 比较name[k]与name[j]的大小,较小的图书名的序号保留在k中 */
		if (k != i)
			{ 
				/*交换name[i]与name[k]的指向 */
				temp = name[i];
				name[i] = name[k];
				name[k] = temp;
			}
	}
}

/*输出对应的字符串数组*/
void print(char *name[], int n)
{
	int		i;

	for (i=0; i<n; i++)
		printf("%s\n", name[i]); 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -