作业帮 > 综合 > 作业

编写一个函数 void sortLine(char*line[],int n); 参数line是一个指向串的指针数组,它

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/05/06 13:17:36
编写一个函数 void sortLine(char*line[],int n); 参数line是一个指向串的指针数组,它指向n个串
这个函数对这些串进行排序,注:在比较两个串的大小之后需要交换两个串时只需交换line中保存的指向这两个串的指针,而不必交换串本身.
试编写一个程序,从键盘上输入一些单词使用sortLine对这些单词进行排序.
编写一个函数 void sortLine(char*line[],int n); 参数line是一个指向串的指针数组,它
#include
#include
#include
#define STR_MAX_LEN\x05128
#define ARRAY_MAX_SIZE\x0532
void sortLine(char *line[],int n)
{
\x05char * tmp;
\x05int i,j;
\x05for(i = n - 1; i > 0; i--) //冒泡法 从小到大
\x05{
\x05\x05for(j = 0; j < i; j++)
\x05\x05{
\x05\x05\x05if(strcmp(line[j],line[j+1]) > 0)
\x05\x05\x05{
\x05\x05\x05\x05tmp = line[j+1];
\x05\x05\x05\x05line[j+1] = line[j];
\x05\x05\x05\x05line[j] = tmp;
\x05\x05\x05}
\x05\x05}
\x05}
}
void main()
{
\x05char* line[ARRAY_MAX_SIZE]; // char[32][128];
\x05int i = 0;
\x05for(i = 0; i < ARRAY_MAX_SIZE; i++)
\x05\x05line[i] = (char *)malloc(sizeof(char) * STR_MAX_LEN);
\x05i = 0;
\x05//字符串 输入,以0结束 或 达到最大字符串数 结束
\x05do
\x05{
\x05\x05scanf("%s",line[i]);
\x05}while(line[i++][0] != '0' && i < ARRAY_MAX_SIZE);
\x05if(i == ARRAY_MAX_SIZE) i += 1;
\x05sortLine(line,i-1);
\x05i = 0;
\x05while(line[i][0] != '0' && i < ARRAY_MAX_SIZE)
\x05\x05printf("%s\n",line[i++]);
\x05for(i = 0; i < ARRAY_MAX_SIZE; i++)
\x05\x05if(NULL != line[i]) free(line[i]);
}