51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1937|回复: 6
打印 上一主题 下一主题

[原创] 在LR中用C语言实现排序的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-5-6 11:28:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.for(k=1;k<7;k++)
{


/*-------------内部--------------------------*/          
   for(j=1;j<7-k;j++)
         {

                if(temp[j]<temp[j+1])
              {
                   strcpy(stemp,temp[j]);
         //      lr_error_message("%s",stemp);
                   strcpy(temp[j],temp[j+1]);
           strcpy(temp[j+1],stemp);
           lr_error_message("%s",temp[j]);
       //   lr_error_message("%s",temp[j+1]);
                   continue;
              }

        
      }


     lr_error_message("***********************");
          
   }

   for(m=1;m<7;m++)
   {
             lr_error_message("%s",temp[m]);
   }
2.  我上面的代码有问题吗? 就是想实现这个排序的功能, 用冒泡法? 可是为什么结果没有改变呢????
    我用 lr_error_message("%s",temp[m]); 输出时, 原来的顺序没有改变? 我想知道为什么?
是不是: strcpy 语句的问题????
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2008-5-6 11:39:57 | 只看该作者
Action()
{


        char arry[100][100]={"90","20","30","40","60"};
    int i;
        int j;
    char temp[100];
        int k;

/*----------------circle-----------------------------*/
        for(i=0;i<5;i++)
        {

          for(j=0;j<5-i;j++)
         {
/*-------------dec---------------------------------*/
              if(arry[j]>arry[j+1])
                          {
                 strcpy(temp,arry[j]);
                                 strcpy(arry[j],arry[j+1]);
                                 strcpy(arry[j+1],temp);
                          }
                  }

           lr_error_message("------------------------------");
                   lr_error_message("%s",arry);

     }

    for(k=0;k<5;k++)
        {
                lr_error_message("%s",arry[k]);
        }


   
        return 0;
}
这是我自己写的,也不行啊..... 不知道为什么? why???? 急............

[ 本帖最后由 superfang 于 2008-5-6 11:40 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-5-6 17:12:00 | 只看该作者
指出你这里面的几个问题:
1.字符数组定义,里面只能是一个字符,比如‘9‘就可以,’90‘就不是字符了;
2. fstrcpy是字符串函数,不是字符函数,所以如果是单个的字符,就不需要用到strcpy函数,直接用=就行了;
3.输出有问题,既然是按%s输出,那么就不要循环了;
下面是我在c环境下编译通过的,给你参考
#include "stdio.h"
main()
{
   char array[5]={'2','3','4','1','6'};
    int i;
    int j;
    char temp;
    int k;
   
        for(i=0;i<5;i++)
        {

          for(j=0;j<5-i;j++)
            {
              if(array[j]>array[j+1])
                          {
                             temp=array[j];
                             array[j]=array[j+1];
                             array[j+1]=temp;
                          }
              }

          }
    for(k=0;k<5;k++)
    printf("%c ",array[k]);
}
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-5-6 22:10:06 | 只看该作者

回复 3# 的帖子

牛B啊....小帅哥...
   谢谢了..
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2008-5-6 22:10:23 | 只看该作者

回复 3# 的帖子

牛B啊....小帅哥...
   谢谢了..
回复 支持 反对

使用道具 举报

  • TA的每日心情

    2016-12-30 10:59
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]测试排长

    6#
    发表于 2008-5-7 11:28:58 | 只看该作者

    回复 3# 的帖子

    程序有问题吧for(j=0;j<5-i;j++)应该为for(j=0;j<4-i;j++)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2008-5-7 16:53:39 | 只看该作者

    回复 6# 的帖子

    是有问题的...
      你说的很对的...现在已经修改好了... 
    3Q
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-27 02:38 , Processed in 0.073985 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表