【正确答案】正确答案:int i ,j, k; i=0; j=0; k=0; while(i<m&&J<n) { if(e[i]<a tj]) { s[k++]=e[i++]; //取小的,因为从小到大排序 } else if(e[i]==a[J]) //相等,取e[i]或a[j]都可 { s[k++]=e[i]; i++; j++; } else //e[i]>a[j],取小 的a[j] { S[k++] =a[J++]; } } while( i<m) s[k++] =e[i++]; //如果数组e后面还有没有加进来的元素,则加进去while(j<n) s[k++] =a[j++];//如果数组a后面还有没有加进来的元素,则加进去
【答案解析】解析:(1)由审题分析可知,可设置循环来逐个读取e数组和a数组的元素值,然后选择小的元素放在数组s中,如果相等则取a数组元素或e数组元素均可,可以利用ifelse语句来进行判断。 (2)由于数组e和数组a长度可能不一定相同,因此在循环结束之后,还需要把长度长的数组的剩余的元素添加到s数字中,即循环结束后如果e数组内还有字符的话把e数组内剩下的字符添加到s数组内,同样如果a数组内还有字符的话把a数组内剩下的字符添加到S数组内。