题目
本题是谭浩强《C程序设计课后习题》题7.11。
题目:
写一个函数, 用“起泡法”对输人的10个字符按由小到大顺序排列。
以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj
一、解题思路
思路:
起泡法也就是冒泡排序,我们只需要知道冒泡排序的核心算法即可:
for(i=0;i<len;i++)
for(j=0;j<len-i;j++)
if (s[j] > s[j+1])
{
char x = s[j];
s[j] = s[j + 1];
s[j + 1] = x;
}
二、代码部分
1.引入库
代码如下(示例):
#include<stdio.h>
2.主函数部分
代码如下(示例):
void sort(char s[])
{
int i, j;
int len = strlen(s)-1;
for(i=0;i<len;i++)
for(j=0;j<len-i;j++)
if (s[j] > s[j+1])
{
char x = s[j];
s[j] = s[j + 1];
s[j + 1] = x;
}
}
void main()
{
char s[11] = { '1','2','3','1','2','3', '1','2','3','9' };
sort(s);
puts(s);
}
三、执行结果
输入:
'1','2','3','1','2','3', '1','2','3','9'
输出:
1112223339