C语言编程:英文单词怎么按A~~z的方法排序

编写的程序是编写英文词典 但是不知道怎么把输入的单词排序 请教

/*字符串冒泡排序,以输入的字符串为空格为结束*/
#include <stdio.h>
#include <string.h>
#define MAXNUM 5
#define MAXLEN 20
main()
{
char s1[MAXNUM][MAXLEN],max[MAXLEN];
int num=MAXNUM,i,j,exchange;

for (i=0;i<num;i++)
{
printf("请输入第%d个单词:\n",i+1);
gets(s1[i]);
}

for (i=0;i<num;i++) //按冒泡排序法排序
{
exchange=0;
for(j=0;j<num;j++)
if (strcmp(s1[j],s1[j+1])>0)
{
strcpy(max,s1[j]);
strcpy(s1[j],s1[j+1]);
strcpy(s1[j+1],max);
exchange=1;
}

if(!exchange)
break;
}
printf("按大小输出单词:\n");
for (i=0;i<num;i++)
printf("%s\n",s1[i]);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-07-12
用qsort()函数和strcmp()函数配合就可以了,示例:

//---------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
char a[5][80];/*用于保存5个单词*/
int i;
for (i = 0; i<5; i++) {/*读取5个单词*/
gets(a[i]);
}
qsort(a,5,sizeof(a[0]),(int (*)(const void *,const void *))strcmp);/*按字典顺序(即A-z顺序)排序*/
for (i = 0; i<5; i++) {
puts(a[i]);
}
return 0;
}
//---------------------------------------------------------------------------
第2个回答  2010-07-12
字符支持大于号和小于号操作,比如bool('a'<'b')的结果为true

C语言编程:英文单词怎么按A~~z的方法排序
include <string.h> define MAXNUM 5 define MAXLEN 20 main(){ char s1[MAXNUM][MAXLEN],max[MAXLEN];int num=MAXNUM,i,j,exchange;for (i=0;i<num;i++){ printf("请输入第%d个单词:\\n",i+1);gets(s1[i]);} for (i=0;i<num;i++) \/\/按冒泡排序法排序 { exchange=0;...

c语言设计 输入一个英文单词,然后按照单词字母由A-Z排序!
int partition(char *s1,char *s2,int pos){ int i,j;i=pos;while(s1[i]==' ')i++;if(s1[i]!='\\0'){ j=0;while(s1[i]!='\\0'&&s1[i]!=' '){ s2[j]=s1[i];i++;j++;} s2[j]='\\0';s2[0]=toupper(s2[0]);return i;} else return -1;} int main(){ ch...

求C语言编程 把26个大写英文字母按字典顺序打印出来??
你好,a的ascii码是65,z的ascii码是90,所以,你可以定义个整型变量i,取值为65~90(就是从a到z的ascii码),然后输出ascii对应的字母就是从a到z了,代码如下:include "stdio.h"void main(){ int i=65;for(;i<=90;i++)printf("%c",i);getchar();} ...

c语言程序设计将小写字母a到z分别按正序和反序输出
include <stdio.h>int main(){ char ch='a'; while(ch <= 'z')printf("%c",ch++); \/\/ 正序输出 ch = 'z'; while(ch >= 'a')printf("%c",ch--); \/\/ 反序输出 return 0;}

C语言编程:将26个英文字母按aAbBcC……zZ先小写后大写的顺序逐个打印...
include <stdio.h> main(){ int i;for(i=0;i<26;i++)printf("%c%c",(97+i),(65+i));}

C语言 全小写字母的字符串按a~z顺序进行排序,不能用strcmp函数 急,在线...
遍历字符串,实际上采用冒泡等常规排序即可实现,因为字符实际可以用ASC码来表示,并且可以直接使用比较运算符<.>.=。strcmp是字符串比较工具,和排序不清楚有什么关系。示例程序:int main(void) {char tmp[100];int i,j,len;printf("Input String:");scanf("%s",tmp);len = strlen(tmp);for(...

C语言编程题,输入#结束的字符串,输出各个字母(小写a~小写z)个数,并按...
if(ch>='a' && ch<='z') { a[ch-'a']++;} } } void char_sort(int a[26], int b[26]) { int i,j,k;int max=0;int count=0;int c[26] = {0};while(count<26) { i=0;while(c[i]) i++; \/\/ 找到第一个未排序的元素 max=a[i];k=i;for(j=i+1; j<26;...

用C语言写出如何输出所有英文字母并从Z-A排序!
小写字母呢,也是z-a么?include "stdio.h"void main(){ char low;for (low='z';low>='a';low--)printf("%2c",low);printf("\\n");for (low='Z';low>='A';low--)printf("%2c",low);printf("\\n");}

【C语言问题】 1.将26个英文字母按aAbBcCdD……zZ先小写后大写得顺序逐...
第一个程序:include <stdio.h> int main(){ int i;for(i = 0; i < 26; i++) { printf("%c%c", 'a' + i, 'a' + i - 32);} putchar('\\n');return 0;} 第二个程序:include <stdio.h> int main(){ int n, i;double sum = 0;scanf("%d", &n);for(i = 1;...

我有C语言编程题问一下:将26个英文字母按aAbBcC……zZ先小写后大写的...
for(i=0;i<26;i++)printf("%c%c", 'a'+i, 'A'+i);

相似回答