用冒泡法对6个字符串按由小到大的顺序进行排序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
下列给定程序中,函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#include
#include
#define MAXLINE 20
/*************found**************/
fun(char *pstr[6])
{ int I, j;
char *p;
for(I=0;I<5;I++)
{for(j=I+1;j<6;j++)
/*************found**************/
{ if(strcmp(*(pstr+I),pstr+j)>0)
{
p=*(pstr+I);
/*************found**************/
*(pstr+I)=pstr+j;
*(pstr+j)=p;
}
}
}
}
void main()
{ int i;
char *pstr[6],str[6][MAXLINE];
system("CLS");
for(i=0;i<6;i++) pstr[i]=str[i];
printf("\nEnter 6 string(1 string at each
line):\n ");
for(i=0;i<6;i++) scanf("%s",pstr[i]);
fun(pstr);
printf("The strings after sorting:\n ");
for(i=0;i<6;i++)
printf("%s\n ",pstr[i]);
}
(1)错误:fun(char *pstr[6]) 正确:void fun(char *pstr[6])
(2)错误:if(strcmp(*(pstr+I),pstr+j)>0) 正确:if(strcmp(*(pstr+I),*(pstr+j))>0) (3)错误:*(pstr+I)=pstr+j; 正确:*(pstr+I)= *(pstr+j);