对英文字符串数组a进行排序,以每个字符串最右边的字母从小到大的顺序为准
例如:a[3]={"hello","china","english"};排序后为:chinaenglishhello用C语言编程,用VC++调试。排序是按着字母的ASCI...
例如:a[3]={"hello","china","english"};
排序后为:china english hello
用C语言编程,用VC++调试。排序是按着字母的ASCII顺序 展开
排序后为:china english hello
用C语言编程,用VC++调试。排序是按着字母的ASCII顺序 展开
2个回答
2011-11-06
展开全部
char* a[3]={"hello","china","english"};
char* b;
int i,j;
for(i = 0;i < 2;i++)
{
for(j=i+1;j<3;j++)
{
if(a[i][0] > a[j][0])
{
b=a[i];
a[i] = a[j];
a[j] = b;
}
}
}
for(i = 0;i < 3;i++)
{
printf("%s ",a[i]);
}
char* b;
int i,j;
for(i = 0;i < 2;i++)
{
for(j=i+1;j<3;j++)
{
if(a[i][0] > a[j][0])
{
b=a[i];
a[i] = a[j];
a[j] = b;
}
}
}
for(i = 0;i < 3;i++)
{
printf("%s ",a[i]);
}
追问
这个好像是按着每个元素的首字母排序,题目要求如下:
“试编写一程序,要求对英文字符串数组A中的每个元素进行排序,顺序以每个元素右边的第一个字符从小到大的顺序(ASCII码表中顺序)为准”
按着每个元素右边的第一个字符从小到大得顺序排得话应该怎么修改啊?
追答
char* a[3]={"hello","china","english"};
char* b;
int i,j;
for(i = 0;i a[j][sizeof(a[j-1])])
{
b=a[i];
a[i] = a[j];
a[j] = b;}
}
}
for(i = 0;i < 3;i++)
{
printf("%s ",a[i]);
}
就是把IF条件换。换成最后一个字母的下标。你试下
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询