例题:下列给定程序中,函数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);
}

输出运行窗口如下:

C语言编程>第二十三周   ③   下列给定程序中,函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序;然后把第三字符插入_main函数


本周其他练习

​​C语言程序设计专栏​​

​​C语言编程>第二十三周 ① 下列给定程序中,函数fun的功能是:求n!(n<20),所求阶乘的值作为函数值返回。例如,若n=5,则应输出120。​​

​​C语言编程>第二十三周 ② 请补充fun函数,该函数的功能是:交换数组a中最大和最小两个元素的位置,结果重新保存在原数组中,其它元素位置不变。注意数组a中没有相同元素。​​

​​C语言编程>第二十三周 ③ 下列给定程序中,函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序;然后把第三字符插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前三个字符中……待排序的字符串已在主函数中赋予。​​

​​C语言编程>第二十三周 ④ 请补充fun 函数,该函数的功能是:删除字符数组中比指定字符小的字符,指定字符从键盘输入,结果仍保存在原数组中。​​

​​C语言编程>第二十三周 ⑤ 请补充main函数,该函数的功能是:求1~100(不包括100)以内所有素数的平均值。​​

​​C语言编程>第二十三周 ⑥ 下列给定程序中函数fun的功能是:删除字符串s中的所有空白字符(包括Tab字符、回车符及换行符)。输入字符串时用 “#”结束输入。​​

​​C语言编程>第二十三周 ⑦ 请补充main函数,该函数的功能是:求n!。​​

​​C语言编程>第二十三周 ⑧ 下列给定程序中,函数fun的功能是:统计一个无符合整数中各位数字值为0的个数,通过形参传回主函数,并把该整数中各位上最大的数字值作为函数值返回。​​

越努力越幸运!​​
​​加油,奥力给!!!