#include<stdio.h>
#include<string.h>
#include<malloc.h>
#define N 20 // the length of English words
struct node {
char en[N];
struct node *next;
};
void print(struct node *p);
void sort(struct node *p);
void del(struct node *p);
void swap(struct node *s1, struct node *s2);
void main() {
struct node *h=NULL, *p, *p1;
char a[N];
int z = 0;
while(z<5) {
printf("Input the word:");
gets(a);
p=(struct node *) malloc(sizeof(struct node));
strcpy(p->en,a);
if(h==0) {
h = p;
p1 = p;
}
else {
p1->next = p;
p1 = p;
}
z = z + 1;
}
p->next = NULL;
// print(h);
sort(h);
// print(h);
del(h);
print(h);
}
void sort(struct node *p) {
// bubble method
struct node *p1, *p2;
p1 = p;
while(p1) {
p2 = p1->next;
while(p2) {
if(strcmp((p2->en),(p1->en))>0) {
swap(p1,p2);
}
p2 = p2->next;
}
p1 = p1->next;
}
}
void swap(struct node *s1, struct node *s2) {
struct node temp1,temp2;
temp1 = *s1;
temp1.next = s2->next;
temp2 = *s2;
temp2.next = s1->next;
*s1 = temp2;
*s2 = temp1;
}
void del(struct node *p) {
struct node *p1,*p2;
p1 = p->next;
while(p1) {
p2 = p1->next;
while(p2) {
if(strcmp((p2->en),(p1->en))==0) {
p1->next = p1->next->next;
free(p2);
}
else {
break;
}
p2 = p1->next;
}
p1 = p1->next;
}
}
void print(struct node *p) {
while(p) {
puts(p->en);
p = p->next;
}
}
分享到:
相关推荐
在字符串排序中,可以选取一个基准字符串,将所有小于基准的字符串放在其前面,大于基准的放在其后面,然后递归地对这两部分进行快速排序。 对于题目给出的二维字符数组`char s[][20]`,我们可以先初始化这个数组,...
标题中的“对字符串的排序”指的是在编程中对一串由字符组成的字符串进行排序的操作。在Java编程语言中,这通常涉及到将字符串拆分成字符数组,然后应用某种排序算法来调整字符的顺序,最终重新组合成排序后的字符串...
2. **字符排序**:对于符合要求的字符串,程序将对其进行冒泡排序,按照字符的ASCII码值从小到大排列。 3. **实验报告**:实验完成后,需要提交包括流程图、带注释的代码、运行结果以及实验心得在内的电子版报告。 ...
在标题"任意从键盘输入10个数,用冒泡法进行排序"中,主要涉及以下几个知识点: 1. **键盘输入**:C#中,我们可以使用`Console.ReadLine()`或`Console.ReadKey()`方法来获取用户的键盘输入。通常,我们需要将用户...
在C++中,可以使用字符的ASCII值来进行转换,或者如果数据格式明确,可以直接解析字符串。 例如,如果char数据是'1', '2', '3'这样的形式,可以使用以下代码片段读取并转换: ```cpp ifstream inputFile("data.txt...
2. **二维数据排序**:在二维数组中,我们可以理解为每个元素是一个一维数组,排序时可能需要对每一行或者每一列进行单独的排序。例如,对行进行冒泡排序,可以先按照第一列排序,然后按照第二列排序,以此类推,...
例如,"maopao.c"可能是用C语言编写的冒泡排序程序,而"paixu.py"则可能是使用Python实现的冒泡排序。通过分析这些代码,我们可以学习到如何将冒泡排序算法转化为具体的编程语句,以及不同编程语言在实现排序算法时...
在实验中,使用了INT 21H中断服务程序来输出字符串,这是DOS系统提供的一种输出文本的常用方式。通过指定AH寄存器的值,可以调用不同的功能,如AH=09H用于输出字符串。 【实验流程】 1. 定义数据段,包含原始数据和...
可以利用CEdit的GetWindowText函数获取输入的字符串,然后通过字符串处理函数(如strtok)将字符串分割成数字数组。 2. **冒泡排序算法**:实现冒泡排序的关键在于理解其核心逻辑。冒泡排序通过两两比较相邻元素,...
在实际应用中,用户可以通过修改PLC的输入参数,如“SortOrder”和数据类型的字符串描述,来控制排序的方式和处理的数据类型。这样的设计使得程序具有更高的灵活性和适应性,能够满足不同场景的需求。 总结来说,S7...
函数如`Lcd_DspHz16`用于在LCD上显示汉字字符串,`Lcd_DspAscII8x16`用于显示ASCII字符串,`Lcd_Clr`用于清屏,`Lcd_Disp`显示正在排序或已排序的数字数组,`Lcd_Disp_old`显示原始输入的数字数组,`over`函数则在...
在易语言中,你可以定义包含不同类型成员的结构体,如整型、浮点型、字符串等。这种数据类型可以表示复杂的现实世界对象,比如一个人的个人信息,包含姓名、年龄、性别等多个属性。在处理这些自定义数据类型时,排序...
对学生成绩进行排序,用气泡排序法,从高到低排列。 对成绩前 70% 的学生定义为合格 PASS;而后 30% 的学生定义为不合格 FALL。 最后,将成绩从高到低打印出来。 程序清单: #include #define SIZE 10 ...
对于给定的例子,当对"17,18,19,24,23,20"进行排序时,第一遍排序后,较大的数被推到了后面,不需要在后续遍历中再对已排序的元素进行比较。因此,优化后的冒泡排序会在遍历过程中检查是否还有需要交换的情况,...
7. **输出控制**:所有的数据输出前需用字符串输出指令进行提示,确保屏幕上的数据显示清晰。这涉及到字符输出指令,如在汇编语言中,可以使用MOV AH, 09H和INT 21H来实现屏幕输出。 实验的程序清单和流程图详细...
在C语言中,可以使用字符串比较函数(如strcmp)来比较学号和姓名,从而实现这些字段的排序。学号排序通常基于数字比较,而姓名排序则需要考虑字母的顺序,这在实现时可能需要额外的处理,例如忽略大小写或按拼音...
在算法应用部分,教师设计的实际问题——模拟奥运会入场顺序,将数字排序转化为国家或地区名称的排序,巧妙地融入了VB字符串比较的知识,既保持了实际应用场景,又与编程教学紧密相连。这种方式使得练习变得有趣且有...
标签中的"es6"表示这些代码可能使用了ECMAScript 6(ES6)的语法特性,如箭头函数、模板字符串等。通过学习和实践这些代码,不仅可以提升对排序算法的理解,还能加深对JavaScript新特性的掌握。 总的来说,这个...