下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。请填空完成此程序。 #include <iostream> #include <string> using namespace std; int main

admin2010-03-29  32

问题 下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。请填空完成此程序。
   #include <iostream>
   #include <string>
   using namespace std;
   int main ( )
   {
      char a[]="changuage",t,m;
      int  i,j,k;
      k=strlen(A) ;
      for (i=0; i<=k-2; i+=2)
      {
         m=i;
         for (j=i+2; j<=k;【  】)
            if (a[m] >a [j]
               m=j;
         if(【  】)
         {   t=a;
             a=a[m];
             a [m] =t;
         }
      }
      cout<<a<<end1;
      return 0;
   }

选项

答案j+=2(或j=j+2) m!=i

解析 本题将字符数组a中下标值为偶数的元素从小到大排列,采用选择法排序。本题用m表示每轮最小值的下标。每次循环开始时,都认为该轮的最小值下标为第1个元素的下标即i,让m=i,然后最小值a[m]与所有后面的元素比较,如果后面的元素值小,则记下它的下标。第1空白处应填下标,j的变化,由于只对偶数下标排序,j的值应该增加2,故第1空白处填:j+=2。当一轮比较完后,该轮的最小值下标存放在变量m中,如果m的值就是该轮比较的第1个元素的下标值i,则不需要交换。只有在m不等于i的时候,才交换,所以第2空白处应填:m!=i。
转载请注明原文地址:https://kaotiyun.com/show/lGjp777K
0

最新回复(0)