当前位置: 代码迷 >> C语言 >> [求助]字符串冒泡法排序 可怎么没有冒泡诶
  详细解决方案

[求助]字符串冒泡法排序 可怎么没有冒泡诶

热度:107   发布时间:2007-03-19 20:58:41.0
[求助]字符串冒泡法排序 可怎么没有冒泡诶

/* 第53题、
函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。
*/

#include <stdio.h>
#include <string.h>
#define N 10

void sort (char *pstr[N]);

int main()
{
int i;
char *p[N]; /*定义一个行指针 */
char str[N][N];

printf("请输入6个字符串:");
for (i = 0; i < 6; i++)
{
scanf("%s", str[i]);
}
for (i = 0; i < 6; i++)
{
p[i] = str[i];
}
sort(p);
printf("排序后的字符串为:");
for (i = 0; i < 6; i++)
{
printf("%s\n", str[i]);
}
return 0;
}

void sort (char *pstr[N])
{
int i;
int j;
char *p;

for (i = 0; i < 6; i++)
{
for (j = i + 1; j < 6; j++)
{
if (strcmp(*(pstr + i), *(pstr + i)) > 0)
{
p = *(pstr + i);
*(pstr + i) = *(pstr + j);
*(pstr +j) = p;
}
}
}
}

输入6个字符啥都没排序``是怎么回事``
编译没问题

搜索更多相关的解决方案: 字符  冒泡  

----------------解决方案--------------------------------------------------------

在使用数组 字符串时 一般都会+ 一个'\0'结尾


----------------解决方案--------------------------------------------------------
char *p[N]; /*定义一个行指针 */

这是定义一个行指针吗?其它的我还没有看
----------------解决方案--------------------------------------------------------

#include <stdio.h>
#include <string.h>
#define N 10

void sort (char *pstr[N]);

int main()
{
int i;
char *p[N]; /*定义一个行指针 */
char str[N][N];

printf("请输入6个字符串:");
for (i = 0; i < 6; i++)
{
scanf("%s", str[i]);
}
for (i = 0; i < 6; i++)
{
p[i] = str[i];
}
sort(p);
printf("排序后的字符串为:");
for (i = 0; i < 6; i++)
{
printf("%s\n", p[i]);
}
return 0;
}

void sort (char *pstr[N])
{
int i;
int j;
char *p;

for (i = 0; i < 6; i++)
{
{ for (j = i + 1; j < 6; j++)

if (strcmp((pstr[i]), (pstr[j])) > 0)
{
p = (pstr[i]);
(pstr[i]) = (pstr[j]);
(pstr[j]) = p;
}
}
}
}


----------------解决方案--------------------------------------------------------
  相关解决方案