- 浏览: 70310 次
- 性别:
- 来自: 大连
最近访客 更多访客>>
最新评论
-
newlangwen1:
你好 我想请教个问题,我运行了一下上面的程序,结果是输入什么就 ...
C程序 对文本行进行排序
#include <stdio.h> #include <string.h> #include <stdlib.h> #define MAXLINES 5000 /* max #lines to be sorted */ char *lineptr[MAXLINES]; /* pointers to text lines */ int readlines(char *lineptr[], int nlines); void writelines(char *lineptr[], int nlines); void qsort(char *lineptr[], int left, int right); /* sort input lines */ int main() { int nlines; /* number of input lines read */ if ((nlines = readlines(lineptr, MAXLINES)) >= 0) { qsort(lineptr, 0, nlines-1); writelines(lineptr, nlines); return 0; } else { printf("error: input too big to sort\n"); return 1; } } #define MAXLEN 1000 /* max length of any input line */ int getline(char *, int); char *alloc(int); /* readlines: read input lines */ int readlines(char *lineptr[], int maxlines) { int len, nlines; char *p, line[MAXLEN]; nlines = 0; while ((len = getline(line, MAXLEN)) > 0) if (nlines >= maxlines || (p = alloc(len)) == NULL) return -1; else { line[len-1] = '\0'; /* delete newline */ strcpy(p, line); lineptr[nlines++] = p; } return nlines; } /* writelines: write output lines */ void writelines(char *lineptr[], int nlines) { int i; for (i = 0; i < nlines; i++) printf("%s\n", lineptr[i]); } /* qsort: sort v[left]...v[right] into increasing order */ void qsort(char *v[], int left, int right) { int i, last; void swap(char *v[], int i, int j); if (left >= right) /* do nothing if array contains */ return; /* fewer than two elements */ swap(v, left, (left + right)/2); last = left; for (i = left+1; i <= right; i++) if (strcmp(v[i], v[left]) < 0) swap(v, ++last, i); swap(v, left, last); qsort(v, left, last-1); qsort(v, last+1, right); } int getline(char s[],int lim) { int c, i; for (i=0; i < lim-1 && (c=getchar())!=EOF && c!='\n'; ++i) s[i] = c; if (c == '\n') { s[i] = c; ++i; } s[i] = '\0'; return i; } /* swap: interchange v[i] and v[j] */ void swap(char *v[], int i, int j) { char *temp; temp = v[i]; v[i] = v[j]; v[j] = temp; } #define ALLOCSIZE 10000 /* size of available space */ static char allocbuf[ALLOCSIZE]; /* storage for alloc */ static char *allocp = allocbuf; /* next free position */ char *alloc(int n) /* return pointer to n characters */ { if (allocbuf + ALLOCSIZE - allocp >= n) { /* it fits */ allocp += n; return allocp - n; /* old p */ } else /* not enough room */ return 0; }
发表评论
-
C程序 声明与定义的区别
2010-07-30 15:34 1301http://zhidao.baidu.com/questio ... -
C语言 函数指针 与 指针函数
2010-07-30 10:27 905指针函数是返回指针的函数,即本质是一个函数。函数返回类型是某一 ... -
C程序 命令行参数
2010-07-30 09:34 669echo.cpp #include <stdi ... -
C程序 整型数按位取反 输出结果
2010-07-29 15:16 1313#include <stdio.h> int m ... -
C语言:malloc()函数与alloc()函数
2010-07-24 10:02 905C语言跟内存分配方式 ... -
C程序设计语言(第二版) 5-4 strend(s,t)
2010-07-23 16:29 1459strend(s,t) 如果字符串t出现在字符串s的尾部,该函 ... -
C程序设计语言(第二版) 5-3 编写strcat()
2010-07-23 16:02 795#include<stdio.h> void ... -
C程序 关于字符串的问题
2010-07-23 15:47 668#include<stdio.h> void ... -
C程序设计语言(第二版)5-2
2010-07-22 17:13 671#include <ctype.h> #incl ... -
C程序设计语言(第二版) 4-14
2010-07-22 11:47 848定义宏swap(t, x, y)以交换t类型的两个参数 ... -
C程序设计语言(第二版) 4-13 递归版本reverse()将字符串倒置输出
2010-07-22 11:18 994编写一个递归版本的reverse()函数,将字符串倒置 ... -
C程序设计语言(第二版) 4-12
2010-07-22 10:29 1018运用printd函数的设计思想编写一个递归版本的itoa函数, ... -
C程序 递归小例子 快速排序
2010-07-22 09:26 916从执行速度来讲,下列版本的快速排序可能不是最快的,但是它是最简 ... -
C程序 递归实现将数字作为字符串输出
2010-07-21 15:47 1264将一个数字作为字符串打印的情况,数字是反序生成的:低位数字先于 ... -
C语言学习之变量存储
2010-07-21 15:14 864http://zhidao.baidu.com/questio ... -
C语言外部变量的使用以及extern的用法
2010-07-21 15:11 2189http://hi.baidu.com/%C3%E2%B7%D ... -
C语言 全局变量和局部变量
2010-07-21 15:07 1425http://hi.baidu.com/%C3%E2%B7%D ... -
C语言 extern
2010-07-21 11:20 1094在头文件中声明函数时,前面的extern可有可无,只要这些函数 ... -
C程序设计语言(第二版) 4-8 最多只压回 一个字符
2010-07-20 18:47 757#include <stdio.h> i ... -
C程序设计语言(第二版) 4-7 编写一个函数ungets(),将整个字符串压回到输入中
2010-07-20 18:38 1472#include<stdio.h> #inclu ...
相关推荐
在Atom中对行进行排序。 永远不会累。 安装 在Atom中:设置->安装->搜索“排序行”,然后单击“安装”或 从CLI: apm install sort-lines然后重新启动Atom。 命令和键绑定 以下所有命令均位于atom-text-editor选择...
这是一个用C++编写的冒泡排序的演示程序,可以演示冒泡排序算法的排序过程。
资源介绍:。文本数组排序模块测试程序。资源作者:。资源界面:。资源下载:。
编制一维数组排序程序。数组大小n用全局变量定义,数组数据从文本文件中读入或随机生成。包含冒泡排序、选择排序、插入排序三种排序方法。程序能够选择使用任何一种方法排序。
易语言文本数组排序模块源码,文本数组排序模块,文本数组排序
较大的英文文本的单词分类与排序,效率非常高
编写一个对输入的英文单词按照字典排序的程序,界面如图,当在一个文本域输入若干个英文字单词,单击字典排序按钮,另一个文本域 对输入的英文单词进行排序;当按清空按钮,另一个文本区域的内容同时清空。要求通过...
读取一个文件中的整数,并将它们从小到大排序,最后输出排序后到另一个文件中
该程序拟实现对英文文本的单词数进行统计以及排序,而且字母大小写不敏感,对首字母必须大写的单词无法有效识别,是一种比较低级的单词频率统计程序。 该程序采用的语言是C#,使用的IDE为Microsoft Visual Studio ...
用netbeans开发的JAVA设计文本文件读取倒序排序程序,也可以保存。主要用JFileChooser控件读取和保存
编写程序,接收从键盘输入某班学生的学号、姓名、成绩,对学 生的成绩进行排序,最后把学号、姓名、学生成绩、名次显示出来。
简单的图形用户界面程序,用于多种排序.代码中还是用文件的选择方式,利于使用从新建的个人文本文件中读取排序数据。
这是一个用C语言实现的快速排序的程序,它实现了对一个英文文本中的单词排序并将排序结果输出到另外一个文件中。
对超级列表框按指定的列进行排序,可以指定是顺序还是逆序、文本排序、数值排序、日期时间排序、是否区分大小写等。使用选择排序法。1.2版相对1.1版的改动:。a.在循环中加入了“处理事件()”函数,使得在较多数据...
排序应用 在文本文件中对行进行排序的应用程序 这里有两个具有不同实现的分支,但是我建议您看一下“ with_one_file”
随机产生5000 10000 50000 100000 200000个随机数,存入文本中,从文本中读取数据进行排序,排序后的结果存入另一文本
用 Ruby 和 Python 编写的应用程序使用带有文件名的参数来读取和写入,并按字母和数字顺序对文本字符串进行排序,从单词中删除非数字和非字母符号,同时将数字保持在相同的位置但按升序排列命令。 要启动程序运行:...
微信小程序-汉字拼音首字母排序选择,包括了一个微信小程序富文本解析函数库,收录字符的Unicode编码范围为19968至40869,汉字拼音首字母列表 本列表包含了20902个汉字,用于配合 ToChineseSpell,改动为判定输入数组...