请补充函数fun(),该函数的功能是;交换数组aa中最大和最小两个元素的位置,结果依然保存在原数组中,其它元素位置不变。注意数组aa中没有相同元素。 例如,输入“33,67,42,58,25,76,85,16,41, 56”,则输出“33,67,42

admin2010-05-05  38

问题 请补充函数fun(),该函数的功能是;交换数组aa中最大和最小两个元素的位置,结果依然保存在原数组中,其它元素位置不变。注意数组aa中没有相同元素。
   例如,输入“33,67,42,58,25,76,85,16,41, 56”,则输出“33,67,42,58,25,76,16,85,41,56”。
   注意;部分源程序给出如下。
   请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
   试题程序:
    #include <stdio. h>
   #define N 10
   void fun(int aa[])
   {
         int i, j, t;
         int max=0, min=0;
         for(i=0; i<N; i++)
         {
               if(【  】)
                      max=i;
               if(【  】)
                      min=i;
         }
         t=aa [max];
              【  】;
         aa [min] =t;
   }
   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 );
   }

选项

答案aa[max]<aa[i] aa[min]>aa[i] aa[max]=aa[min]

解析 第一空:先假设aa[0]最大,如果找到更大的元素,则将这个元素的下标赋给max。第二空:同理,先假设aa[0]最小,如果找到更小的元素,则将这个元素的下标赋给min。第三空:找到最大值和最小值之后,借助第三个变量t交换这两个元素。
转载请注明原文地址:https://kaotiyun.com/show/qHID777K
0

最新回复(0)