请补充函数fun(),该函数的功能是:把数给aa中元素下标为奇数的元素按从大到小的顺序重新保存在原数组中,其它元素位置不变。 例如,输入“33,67,42,58,25,76,85,16,41, 56”,则输出“33,76,42,67,25,58,85

admin2010-05-05  28

问题 请补充函数fun(),该函数的功能是:把数给aa中元素下标为奇数的元素按从大到小的顺序重新保存在原数组中,其它元素位置不变。
   例如,输入“33,67,42,58,25,76,85,16,41, 56”,则输出“33,76,42,67,25,58,85,56,41,16”。
   注意:部分源程序给出如下。
   请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
   试题程序:
       #include <stdio.h>
       #define N 10
       void fun(int aa[])
       {
           int i, j, t;
           for (【  】; i<N; i=i+2)
           {
              for(j=i; j<N; j=j+2)
                  if (aa <aa[j])
                  {
                     【  】;
                      aa [j]=aa;
                      【  】;
                  }
          }
       }
       main()
       {
           int i;
           int aa[N]={33, 67, 42, 58, 25, 76, 85, 16,
                      41, 56};
           clrscr();
           printf("\n*** original list ***\n");
           for (i=0;i<N; i++)
               printf ("%4d",aa);
           fun (aa);
           printf("\n*** new list ***\n");
           for (i=0; i<N; i++)
               printf ("%4d",aa );
       }

选项

答案i=1 t=aa[j] aa[i]=t

解析 第一空:本题采用选择法进行排序。因为题目要求将下标为奇数的元素进行排序,所以下标为0的元素不用考虑,从下标为1的元素开始。第二空:借助第三个变量t交换两数。首先将aa[j]赋给t暂存。第三空:然后将aa赋给aa[j]此时aa[j]中的数已经发生变化,而t中暂存了a[j]原来的值,所以最后将t赋给aa
转载请注明原文地址:https://kaotiyun.com/show/jHID777K
0

最新回复(0)