
这是一个使用C语言编写的冒泡排序函数,可以对数字进行排序。以下是函数实现:
void mao_pao(int *a,int n) { int i,j,temp,flag; for(i=0;i { flag=0; for(j=0;j { if(a[j]>a[j+1]) { flag=1; temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } }
在主函数中,程序首先分配内存,然后提示用户输入元素个数,并输入这些元素。接下来调用冒泡排序函数进行排序,最后输出排序后的结果。
void main() { int *a,i,n; a=(int *)malloc(100); if(NULL==a) { printf("allocation failture\n"); exit(1); } printf("请输入你要排序的元素的个数\n"); scanf("%d",&n); printf("现在开始输入%d个元素\n",n); for(i=0;i!=n;++i) scanf("%d",&a[i]); mao_pao(a,n); printf("排序后为:\n"); for(i=0;i!=n;++i) printf("%d ",a[i]); printf("\n"); free(a); }
如果要对字母进行排序,只需将函数中的变量类型改为字符型,并调整输入输出的格式即可。
举个例子,如果要对字符进行排序,可以将变量类型改为字符型,并使用字符输入输出:
void mao_pao(char *a,int n) { int i,j,temp,flag; for(i=0;i { flag=0; for(j=0;j { if(a[j]>a[j+1]) { flag=1; temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } }
在主函数中,程序会提示用户输入字符,并使用字符输入输出:
void main() { char *a,i,n; a=(char *)malloc(100); if(NULL==a) { printf("allocation failture\n"); exit(1); } printf("请输入你要排序的字符的个数\n"); scanf("%d",&n); printf("现在开始输入%d个字符\n",n); for(i=0;i!=n;++i) scanf("%c",&a[i]); mao_pao(a,n); printf("排序后为:\n"); for(i=0;i!=n;++i) printf("%c ",a[i]); printf("\n"); free(a); }详情