问题及代码:
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:word.cpp
*作 者:单昕昕
*完成日期:2014年11月23日
*版 本 号:v1.0
*
*问题描述:用冒泡法给一串字符排序(英文以26字母的顺序为正序)。
*程序输出:输出正序或者逆序的一串字符。
*/
#include<iostream>
#include<cstdio>
void bubble_sort(char a[],int n);
void output_array(char a[],int n);
using namespace std;
int main( )
{
char a[20]= {'s','o','r','t','b','u','b','b','l','e','s','e','l','e','c','t','o','k','o','k',};
char b[15]= {'o','u','t','p','u','t','a','r','r','a','y','o','k','o','k',};
bubble_sort(a,20); //用冒泡法按降序排序a中元素
output_array(a,20); //输出排序后的数组
bubble_sort(b,15); //用冒泡法按降序排序b中元素
output_array(b,15); //输出排序后的数组
return 0;
}
//定义bubble_sort和output_array函数
void bubble_sort(char a[],int n)
{
int i,j;
char t;
for(j=0; j<n-1; j++)
for(i=0; i<n-1-j; i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
return;
}
void output_array(char a[],int n)
{
int i;
for(i=0; i<n; ++i)
cout<<a[i]<<" ";
cout<<endl;
return;
}
运行结果:
———————————————————————————————————正序———————————————————————————————————————
——————————————————————————————————————逆序—————————————————————————————————————
知识点总结:
用冒泡法给字符数组排序。
学习心得:
除了数组类型不同,其他并无二致。