C语言:冒泡排序法:将若干字符串按字母顺序(由小到大)排序输出

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

void sort(char *a[]);
void print(char *a[]);

int main()
{
	char *a[] ={"ceo","define","basic","abc","empty"};
	printf("原来的序列是:\n");
	print(a);

	sort(a);

	printf("\n排序后的序列是:\n");
	print(a);

	printf("\n");
	return 0;
}
void sort(char *a[])
{
	int i,j;
	char *temp;
	for(i=0;i<4;i++)//注意是i<4
	{
		for(j=0;j<4;j++)//注意是j<4,因为下面要+1和后面的那个字符串比较
		{
			if(strcmp(a[j],a[j+1])>0)//字符串比较:>0表示前面的字符串比后面的大则交换
			{
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
	}
}
void print(char *a[])
{
	int i;
	for(i=0;i<5;i++)
	{
		printf("%s ",a[i]);
	}
}

时间: 2025-01-07 03:50:48

C语言:冒泡排序法:将若干字符串按字母顺序(由小到大)排序输出的相关文章

【C语言】用指针数组完成:将若干字符串安字母顺序输出

//用指针数组完成:将若干字符串安字母顺序输出 #include <stdio.h> #include <string.h> void print(char * name[],int n) //char * name[],指针数组,每个数组元素是一个char*(即字符串)类型 { int i; for(i=0;i<n;i++) { printf("%s\n",name[i]); } } void sort(char *name[],int n) { cha

编程题:指针数组实现,将多个字符串按字母顺序输出。

#include<stdio.h> void sort(char *str[],int n) { char *temp;int i,j,k; for(i=0;i<n-1;i++) {k=1; for(j=i+1;j<n;j++) if(strcmp(str[k],str[j])>0) k=j; if(k!=i) {temp=str[i];str[i]=str[k];str[k]=temp;} } } void main() { int i,n=4; char *string[

C语言冒泡排序法

#include<stdio.h> void main() { int a[10]; int i,j,t; printf("input 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]);for(j=0;j<9;j++) /*进行9次循环 实现9趟比较*/ for(i=0;i<9-j;i++) /*在每一趟中进行9-j次比较*/ if(a[i]>a[i+1]) /*相邻

算法之旅 | 冒泡排序法

冒泡排序法 HTML5学堂-码匠:本期继续走入算法 -- 冒泡排序法.冒泡排序算法相对简单,容易上手,稳定性也比较高, 算是一种较好理解的算法,也是面试官高频提问的算法之一. Tips:关于"算法"及"排序"的基础知识,在此前"选择排序法"中已详细讲解,可点击文后的相关文章链接查看,在此不再赘述. 冒泡排序法的原理 基本原理 从序列头部开始遍历,两两比较,如果前者比后者大,则交换位置,直到最后将最大的数(本次排序最大的数)交换到无序序列的尾部,从

C语言 数组输出,冒泡排序法,沉底排序法,二维数组输出,输出字母列长度,从随机数组中找重复数

#include <stdio.h> #define sum 3+4//宏定义是原封不动的使用used for test4 #include <time.h>//used for test8~9 #include <stdlib.h>//used for test8~9 void test(){//数组输出 //int a[5]={1,2,3,4,5}; printf("array output,look,please...\n"); int a[1

冒泡排序法(C语言)

冒泡排序(Bubble Sort) 一种计算机科学领域的较简单的排序算法.它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小.首字母从从Z到A)错误就把他们交换过来.走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成. 这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名"冒泡排序". 基本思路 每次将相邻的两个数比较,将较

C语言学习(二)——字符串和格式化输入输出

C语言学习(二)——字符串和格式化输入输出 1.char数组类型和空字符 C没有为字符串定义专门的变量类型,而是把它存储在char数组里.数组的最后一个位置显示字符\0.这个字符就是空字符,C用它来标记字符串的结束,其ASCII码的值为(或者等同于)0.C的字符串存储时通常以这个空字符结束,该字符的存在意味着数组的单元数必须至少比要存储的字符数多1.计算机可以自己处理大多数这些细节问题(例如,scanf( )会添加'\0'使得数组内容成为C字符串). 2.strlen( )函数与sizeof运算

C语言之函数调用18—多字符串排序

//字符串排序***** /* =============================================================== 对任意个字符串升序排列! =============================================================== */ #include<stdio.h> #include<string.h> #define N 3          //控制排序数量 #define M 100  

C语言基础学习5:字符串与指针

1.字符串的表示形式 (1)用字符数组存放一个字符串,然后输出该字符串. char string[] = "I am happy"; printf("%s",string); (2)用字符指针指向一个字符串. char *string = "I am happy"; printf("%s",string); 2.字符指针作函数参数 (1)用字符数组作参数 void CopyString(char from[], char to