| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1918 人关注过本帖, 2 人收藏
标题:字符串排序问题,求助.
取消只看楼主 加入收藏
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
收藏(2)
 问题点数:0 回复次数:3 
字符串排序问题,求助.

编写一个程序,将下列名称按第一个字母排序. George Albert Tina Xavier Roger Tim William 我开了个头,就不知道再从哪里下手了,晕死了.希望能够用ACSII码来进行比较,这样我容易懂点。 #include <stdio.h> void main() { char ch[7][8],temp[8]; int i,j,k; i=j=k=0; printf("请输入单词:"); for(i=0,j=0;i<7,j<8;i++,j++) //不明白为什么要输入8个单词才会跳出循环,i<7应该只循环6次啊,改成i<6就OK了!郁闷中…… { scanf("%s",ch); } printf("\n"); for(i=0;i<6;i++) { for(k=i+1;k<7;k++) if('ch[i][0]'>'ch[k][0]')//第一个单词首字母ACSII码与第二个单词首字母ACSII码进行比较; { temp[8]=ch[k][0];//这里我就不知道怎么搞了,我的意思是将首字母ACSII码小的单词整个放进临时字符串temp[8]中,但是这样,只是将第一个字母放进去了,我现在需要将整个单词放进去,不知道思路是否正确,现在被卡住了,郁闷中…… ch[][] } } }

[此贴子已经被作者于2004-05-30 17:55:02编辑过]

搜索更多相关主题的帖子: 字符 printf 单词 
2004-05-30 17:15
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
收藏
得分:0 

那上面的这段程序应该怎么样编写呢。我写成这样了,但是有问题,请指教,并写出正确程序,谢谢!

#include <stdio.h> #include <string.h> void main() { char ch[7][8]; char temp[8]; int i,j;i=j=0; printf("请输入单词:\n"); for(i=0;i<7;i++) { scanf("%s",ch); } printf("\n"); for(i=0;i<6;i++) for(j=i+1;j<7;j++) { if(strcmp(ch[i],ch[j])) { strcpy(temp,ch[j]); strcpy(ch[j],ch[i]); strcpy(ch[i],temp); } } for(i=0;i<6;i++) printf("%s\n",ch[i]); }

[此贴子已经被作者于2004-05-30 21:25:41编辑过]


学好编程就能编出自己的未来! 加油!自信!努力!奋斗!
2004-05-30 20:56
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
收藏
得分:0 

版主的程序执行起来有错误啊,不信你可以执行一下!


学好编程就能编出自己的未来! 加油!自信!努力!奋斗!
2004-06-01 10:20
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
收藏
得分:0 

终于搞出来了,正确的程序是这样的: #include <stdio.h> #include <string.h> void main() { /*定义变量部分*/ int i=0,j; char x[7][8]; char temp[8]; /*输入单词部分*/ printf("请输入单词:\n"); for(i=0;i<7;i++) gets(x[i]); /*排序部分*/ for(i=0;i<7-1;i++) { for(j=i+1;j<7;j++) { if(strcmp(x[i],x[j])>0) { strcpy(temp,x[i]); strcpy(x[i],x[j]); strcpy(x[j],temp); } } } /*排序后结果*/ printf("排序后结果:\n"); for(i=0;i<7;i++) printf("%s\n",x[i]); }

版主这里排序的过程怎么这么复杂啊,给我讲讲行吗? if(strcmp(str[j],str[j+1])>0) { strcpy(str2,str[j]); strcpy(str[j],'\0'); strcpy(str[j],str[j+1]); strcpy(str[j+1],'\0'); strcpy(str[j+1],str2); }

[此贴子已经被作者于2004-06-01 10:51:13编辑过]


学好编程就能编出自己的未来! 加油!自信!努力!奋斗!
2004-06-01 10:50
快速回复:字符串排序问题,求助.
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016153 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved