给定程序MODll.C中函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序。然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序; 再把第四个字符插入到前三个字符

admin2013-04-02  37

问题 给定程序MODll.C中函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序。然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序;
    再把第四个字符插入到前三个字符中……。待排序的字符串已在主函数中赋予。
    请改正程序中的错误,使它能得出正确结果。
    注意:不要改动mmn函数,不得增行或删行,也不得更改程序的结构。
#include
#include
#define N 80
void insert(char *aa)
{int i,j,n; char ch;
/**********found**********/
   n=strlem(aa);
   for(i=1; i/**********found**********/
       c=aa;
       j=i-1;
       while ((j>=0) && (ch       {aa[j+1]=aa[j];
           j--;        
       }
       aa[j+1]=ch;
   }
}
main()
{char a[N]="QWERTYUIOPASDFGHJKLMNBVCXZ";
    printf ("The original string :      %s\n", a);
    insert(a);
    printf("The string after sorting : %s\n\n",a);
}

选项

答案n=strlen( aa ); ch=aa[i];

解析 (1)strlen是求字符串长度的函数,函数调用的形式是:strlen(字符串地址),故第一标识下应改成“n=strlen( aa );”。
(2)程序调试时会提示“c=aa;”中的c未定义,insert函数中定义的是变量ch作为存放aa字符串中字符的临时变量,然后对其与其他字符进行比较。所以将“c=aa;”改为“ch=aa;”。
转载请注明原文地址:https://kaotiyun.com/show/6JJp777K
0

最新回复(0)