例题:下列给定程序中,函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序;然后把第三字符插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前三个字符中……待排序的字符串已在主函数中赋予。
请修改程序中的错误,得出正确的结果。
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。
代码如下:
#include<stdio.h>
#include<string.h>
#define N 100
void getin(char*str)
{
int i,j,n;
char ch;
n=strlen(str);
for(i=1;i<n;i++)
{
ch=str[i];
j=i-1;
while((j>=0)&&(ch<str[j]))
{
str[j+1]=str[j];
j--;
}
str[j+1]=ch;
}
}
main()
{
char s[N]="asdfsdfsdf";
printf("The original string:%s\n",s);
getin(s);
printf("The string after sorting:%s\n\n",s);
}
输出运行窗口如下:
越努力越幸运!
加油,奥力给!!!