紧急求助
用指针和指针数组编写一个程序:实现下述功能:先输入5个字符串,对每个字符串按字符进行从小到大排序,然后再对这5个字符串进行从小到大的排序 问题点数:20、回复次数:4Top
1 楼nasi00(莫傲·逍遥)回复于 2005-04-02 22:28:58 得分 8
先定义一个struct:
struct _str {
char s[MAX];
};
然后:
_str a[5];
在输入以后,就:
for(i=0;i<5;i++)
{
std::sort(a[i].s, a[i].s+strlen(a[i].s) );
}
然后再排_str:
std::sort(a, a+5, cmp);
其中:
bool cmp(_str p, _str q)
{
if(strcmp(p.s, q.s) < 0) return true;
return false;
}
提供一个思路,也没写程序。如果是C语言的话,就用stdlib.h里面的qsort()函数吧。Top
2 楼zhangfjj(小张)回复于 2005-04-02 23:03:55 得分 8
闲来无事,随便写写
/*用指针和指针数组编写一个程序:实现下述功能:先输入5个字符串,
对每个字符串按字符进行从小到大排序,然后再对这5个字符串进行从小到大的排序*/
#include <string.h>
#include <stdio.h>
void strsort(char str[],int size)/*对字符串中字符排序*/
{
int i,j,min,t;
for(i=0;i<size-1;i++)
{
min=i;
for(j=i+1;j<size;j++)
{
if(str[j]<str[min])
min=j;
}
if(min!=i)
{
t=str[min];
str[min]=str[i];
str[i]=t;
}
}
}
void strpsort(char *str[],int size)/*对字符串数组进行排序*/
{
int i,j,min;
char *t;
for(i=0;i<size-1;i++)
{
min=i;
for(j=i+1;j<size;j++)
{
if(strcmp(str[j],str[min])<0)
{
t=str[j];
str[j]=str[min];
str[min]=t;
}
}
}
}
int main()
{
char str1[5][256];
char *str[5];
int i;
for(i=0;i<5;i++)
{
printf("please input %dth string: ",i+1);
str[i]=str1[i];
gets(str[i]);
}
printf("\n before sorted on each string:\n");/*不笑,蹩足的英语*/
for(i=0;i<5;i++)
{
printf("%dth string is: %s\n",i+1,str[i]);
}
printf("\n after sorted on each string:\n\n");
for(i=0;i<5;i++)
{
strsort(str[i],strlen(str[i]));
printf("%d th string is: %s\n",i+1,str[i]);
}
strpsort(str,sizeof(str)/sizeof(char *));
for(i=0;i<5;i++)
{
printf("%d th string is: %s\n",i+1,str[i]);
}
return 0;
}Top
3 楼MagicCarmack(MagiC++)回复于 2005-04-03 01:10:25 得分 4
楼上写得不错Top
4 楼fashionzhou(自由港)回复于 2005-07-03 22:12:06 得分 0
还有其他的吗?Top




