| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 730 人关注过本帖
标题:冒泡排序法,从小到大排列一串字符,感觉没错误啊
只看楼主 加入收藏
abc594986308
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:116
注 册:2013-3-18
结帖率:82.93%
收藏
已结贴  问题点数:7 回复次数:5 
冒泡排序法,从小到大排列一串字符,感觉没错误啊
#include<stdio.h>
#include<string.h>
#define N 10
char str[N];
fun(char str[])
{
    int i,temp;
    for(i=0;i<N;i++)
    {
        if(str[i+1]<str[i])
        {
            temp=str[i+1];
            str[i+1]=str[i];
            str[i]=temp;
        }
    }
}
main()
{
int j;
gets(str);
if(strlen(str)>N)
printf("超过长度,请重新输入!");
fun(str);
for(j=0;j<N;j++)
printf("%c",str[j]);
}
搜索更多相关主题的帖子: include 
2013-07-07 19:33
yuhaibinhf
Rank: 2
等 级:论坛游民
帖 子:34
专家分:29
注 册:2011-4-7
收藏
得分:2 
你这只是冒了一次泡而已, 只 找到了一个 最小的值,其它的根本没有冒泡。。。
2013-07-07 20:30
xp0213
Rank: 7Rank: 7Rank: 7
来 自:湖北武汉
等 级:黑侠
威 望:1
帖 子:222
专家分:524
注 册:2011-10-26
收藏
得分:2 
#include<stdio.h>
#include<string.h>
#define N 10      /*这里为你限制的输入的字符数,假设为10*/
fun(char str[])
{
    int i,j,temp;
    int t;        
    t=strlen(str); /*t为输入的字符串的长度,因为不能大于10,因此长度是无法确定的,故用strlen取长度*/
    for(i=0;i<t;i++)
    {
        for(j=0;j<t-1-i;j++)
        {
           if(str[j]>str[j+1])  /*这里为冒泡排序法,一重循环是无法排序的*/
           {
            temp=str[j];
            str[j]=str[j+1];
            str[j+1]=temp;
           }
        }
    }
    str[t]='\0';
}
main()
{
    char str[40];   /*因为无法确定你输入字符串长度,所以定义一个比较大的数组,避免输入溢出*/
    int j;
    do
    {
        gets(str);
        if(strlen(str)>N)                 /*这里为输入检验循环,当输入长度小于10,条件不满足,循环结束*/
        {
          printf("超过长度,请重新输入!"); /*当输入长度大于10,条件为为真,继续循环,直到为假时结束*/
        }
    }
    while(strlen(str)>10);
   fun(str);
   for(j=0;j<strlen(str);j++)
   printf("%c",str[j]);
   printf("\n");
}
2013-07-07 20:33
yuhaibinhf
Rank: 2
等 级:论坛游民
帖 子:34
专家分:29
注 册:2011-4-7
收藏
得分:0 
for(j = 0; i < N; j ++)
for(i = 0; i < N - 1; i ++)
  if (a[i] < a[i + 1])
{ ...
   ...}
2013-07-07 20:34
awisebird_
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:82
专家分:185
注 册:2013-7-6
收藏
得分:2 
二重循环
2013-07-07 20:45
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:2 
好久没来了,,,楼上很详细,注意双重循环

三十年河东,三十年河西,莫欺少年穷!
2013-07-07 20:58
快速回复:冒泡排序法,从小到大排列一串字符,感觉没错误啊
数据加载中...
 
   



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

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