下列给定程序中,函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include  <stdlib.h>
#include  <string.h>
#include  <conio.h>
#include  <stdio.h>
#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])c语言的冒泡排序算法
2)错误:if(strcmp(*(pstr+I),pstr+j)>0)            正确:if(strcmp(*(pstr+I),*(pstr+j))>0)
3)错误:*(pstr+I)=pstr+j;                    正确:*(pstr+I)= *(pstr+j);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。