用指针实现:将10个字符串(设其长度小于20)从小到大排序。 输入: 10个字符串。 输出: 排序后的10个字

用指针实现:将10个字符串(设其长度小于20)从小到大排序。
输入: 10个字符串。
输出: 排序后的10个字符串。
输入样例: ijk
jkl
def
ghi
def
cde
hij
def
efg
fgh
输出样例: cde
def
def
def
efg
fgh
ghi
hij
ijk
jkl
提示: ① 定义二维字符数组和指向该数组的指针数组;
② 用循环使指针数组的元素指向二维字符数组各行首;
③ 用循环为指针数组元素赋字符串为值;
④ 用strcmp函数比较两个指针数组元素的值、用strcpy函数交换两个指针数组元素的值。
来源:

第1个回答  2010-12-07
#include <iostream>
using namespace std;
char input[10][20];
int main()
{
int i,j;
char *direct,*now;
for( i = 0; i<10; i++)
{
gets(input[i]);
}
cout<<endl;
for( i = 0,now = input[0]; i<9; i++,now = input[i])
{
for(j = i,direct = input[i]; j<10; j++,direct = input[j])
{
if(strcmp(now,direct) > 0)
{
char exchange[20];
strcpy(exchange,now);
strcpy(now,direct);
strcpy(direct,exchange);
}
}
}
for( i = 0; i<10; i++)
puts(input[i]);
return 0;
}本回答被网友采纳
第2个回答  2010-12-12
shui
第3个回答  2010-12-13
fdgdfg
相似回答