下列给定程序中,函数fun的功能是:用选择法对数组中的n个元素进行升序排列。 请修改程序中的错误,使它能得出正确的结果。 注意:不得增行和删行,也不得更改程序的结构! 试题程序: #include<stdio.h>

admin2019-02-02  26

问题 下列给定程序中,函数fun的功能是:用选择法对数组中的n个元素进行升序排列。
    请修改程序中的错误,使它能得出正确的结果。
    注意:不得增行和删行,也不得更改程序的结构!
    试题程序:
    #include<stdio.h>
    #define N 20
    void fun(int a[],int n)
    {
      int i,j,t,p;
      for(j=0;j<n—1;j++)
      {
    / * * * * * * found * * * * * * /
         p=j
          for(i=j;i<n;i++)
            if(a<a[p])
    / * * * * * * found * * * * * * /
               p=j;
            t=a[p];a[p]=a[j];a[j]=t;
      }
    }
    main()
    {
      int a[N]={9,6,8,3,—1},i,m=5;
      printf("排序前的数据:");
      for(i=0;i<m;i++)
        printf("%d",a);
      printf("\n");
      fun(a,m);
      printf("排序后的数据:");
      for(i=0;i<m;i++)
        printf("%d",a);
      printf("\n");
    }

选项

答案(1)p=j; (2)p=i;

解析 本题考查:选择法排序。
    (1)这里是一个语法错误,缺少一个“;”号。
    (2)p用来存放进行比较的两个数组元素中,较小元素的下标,因此此处应为p=i。
转载请注明原文地址:https://kaotiyun.com/show/bbRp777K
0

最新回复(0)