A-A+
下列给定程序中 函数ptoc的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序
问题详情
下列给定程序中,函数ptoc的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本方法是:先对字符串中的头两个元素进行排序,然后把第3个字符插入前两个字符中,插入后前3个字符依然有序;再把第4个字符插入前三个字符中,待排序的字符串已 在主函数中赋予。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: include<strin9.h> include<stdi0.h> define M 80 void proc(char*arr) { int i,j,n;char ch; n=strlen(arr): for(i=1;i<n;i++) //****found**** { c=arr[i]; j=i-1; while((j>=o)&&(ch<arr[j])) { arr[j+1]=arr[j]; j--; } arr[j+1]=ch; } } void main { char a[M]="QWERTYUIOPASDFGHJKLMNBVCXZ"; printf("The original string:%s\n",a); proc(a); printf("The string after sortin9: %s\n\n",a); } 请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:
错误:c=arr[i];
正确:ch=arr[i];
【解析】由函数定义可知,函故proc只定义了变量ch,没有定义变量C。因此,“c=arr[i]:”应改为“ch=arr[i];”。