单词排序c语言 这是什么问题? 输入数字n表示有几个单词 再输入单词按字典离的顺序输出

#include<stdio.h>
#include<string.h>
void main()
{
int n,i,j;
char str[100],a;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s",&str[i]);
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(strcmp((char *)str[i],(char *)str[j])>0)
{
strcpy((char *)a,(char *)str[i]);
strcpy((char *)str[i],(char *)str[j]);
strcpy((char *)str[j],(char *)a);
}
}
}
for(i=0;i<n;i++)
printf("%s\n",str[i]);
}

#include<stdio.h>
#include<string.h>
void main()
{
int n,i,j;
char str[100][10],a[10];
//这里改了,原来是只能存放字符的数组,现假设每个单词长度不超过9个字符
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s",&str[i]);
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(strcmp((char *)str[i],(char *)str[j])>0)
{
strcpy((char *)a,(char *)str[i]);
strcpy((char *)str[i],(char *)str[j]);
strcpy((char *)str[j],(char *)a);
}
}
}
for(i=0;i<n;i++)
printf("%s\n",str[i]);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-06
这是冒泡排序法,按输入字母的ascII码大小来比较,并排序输出追问

怎么改呢?

追答

你想改成什么样的?或者你想实现什么功能?

第2个回答  2013-05-06
lz 把字符串定义成指针字符串,str1才表示一个单词,追问

怎么改呢?

追答

char *str[100],*a; scanf("%s",str[i]);printf("%s\n",*(str[i]));

相似回答