| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 742 人关注过本帖
标题:[求助]为什么我的只冒一次泡??
取消只看楼主 加入收藏
kyan54
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2006-4-7
收藏
 问题点数:0 回复次数:1 
[求助]为什么我的只冒一次泡??

题目:输入多个城市的名字,按冒泡法排列好输出
我自己写了,但是只能排列一次。。高手指教

#include<stdio.h>
#include<string.h>
#define CITYNUM 5
void main()
{
int i,j,k,num;
char city[CITYNUM][20];
char str[80];

num=0;
for (i=0;i<CITYNUM;i++)
{
printf("input the name of the %dth city:",i+1);
gets(str);
if (str[0]==0)
break;
if (strlen(str)>19)
{
i--;
continue;
}
strcpy(city[i],str);
num++;
}

for (i=1;i<num;i++)
{
for (j=0;j<num-i;j++)
if ( stricmp ( city[j],city[j+1] )>0 )
{
strcpy(str,city[i]);
strcpy(city[i],city[k]);
strcpy(city[k],str);
}
for (i=0;i<CITYNUM;i++)
printf("%s\n",city[i]);
}
}


我试了好多次。。米办法了。。高手指教下。。谢谢

搜索更多相关主题的帖子: include 
2006-05-10 18:35
kyan54
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2006-4-7
收藏
得分:0 

我还没学到指针。。
不过问题解决了。。谢谢大家
我把正确的贴出来
#include<stdio.h>
#include<string.h>
#define CITYNUM 5
void main()
{
int i,j,num;
char city[CITYNUM][20];
char str[80];

num=0;
for (i=0;i<CITYNUM;i++)
{
printf("input the name of the %dth city:",i+1);
gets(str);
if (str[0]==0)
break;
if (strlen(str)>19)
{
i--;
continue;
}
strcpy(city[i],str);
num++;
}

for (i=0;i<num;i++)
{
for (j=i+1;j<num;j++)
if ( stricmp ( city[i],city[j] )>0 )
{
strcpy(str,city[i]);
strcpy(city[i],city[j]);
strcpy(city[j],str);
}
}
for (i=0;i<CITYNUM;i++)
printf("%s\n",city[i]);
}


if (只要你感兴趣,有毅力) printf(\"就什么都不是问题~!\");
2006-05-10 20:03
快速回复:[求助]为什么我的只冒一次泡??
数据加载中...
 
   



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

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