| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 522 人关注过本帖
标题:自己写的比较一串数大小的自定义函数。。但有个bug改不过来
只看楼主 加入收藏
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
结帖率:58.82%
收藏
已结贴  问题点数:18 回复次数:13 
自己写的比较一串数大小的自定义函数。。但有个bug改不过来
程序代码:
int intcmp(char *a,char *b)
{
    int i,c;
    if (strlen(a)!=strlen(b))
    {
        c=strlen(a)>strlen(b)?1:-1;
        return c;
    }
    else
    {
        for (i=0;;)
        {
            if (a[i]>b[i])
            {
                c=1;
                return c;
            }
            else if (a[i]<b[i])
            {
                c=-1;
                return c;
            }
            else if (a[i]==b[i]=='\0')
            {
                c=0;
                return c;
            }
            else
            {
                i++;
            }
        }
    }
}

但是在输入的两个数串一样的时候,比如121 和121的时候总是输出a<b
不理解啊 = =
2012-11-30 00:23
StarFall
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:193
专家分:553
注 册:2012-10-1
收藏
得分:15 
#include<stdio.h>
#include <string.h>

int intcmp(char*a,char*b)
{
int i,c;
if(strlen(a)!=strlen(b))
{
c=strlen(a)>strlen(b)?1:-1;
return c;
}
else
{
for(i=0;1;)
{
if(a[i]>b[i])
{
c=1;
return c;
}
else if(a[i]<b[i])
{
c=-1;
return c;
}
else if(a[i]=='\0'&&b[i]=='\0')
{
c=0;
return c;
}
else
{
i++;
}
}
}
}
int main(void)
{
char a[10],b[10];
int i;
gets(a);gets(b);
i=intcmp(a,b);
if(i>0) puts("a>b");
else if(i<0) puts("a<b");
else puts("a=b");
return 0;
}



没有 a[i]==b[i]=='\0'这种用法。  已改

去追寻更高的技术领域。永不停止。
2012-11-30 06:15
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
我在这个帖子里写了一个字符串比较函数
你可以看看 要是有bug 请指出

https://bbs.bccn.net/thread-388996-1-1.html

DO IT YOURSELF !
2012-11-30 06:33
StarFall
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:193
专家分:553
注 册:2012-10-1
收藏
得分:1 
真神奇。。'\0'竟然变成''了。。。。- -你自己补上吧。。。。刷新一下又有了。。手机上果然怪怪的。。。

[ 本帖最后由 StarFall 于 2012-11-30 07:56 编辑 ]

去追寻更高的技术领域。永不停止。
2012-11-30 07:54
木头人不是人
Rank: 2
等 级:论坛游民
帖 子:8
专家分:19
注 册:2012-11-4
收藏
得分:1 
最好是把 字符串数,变成整数,然后比较,正确率高些
2012-11-30 08:51
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
收藏
得分:1 
看了看,感觉
c=strlen(a)>strlen(b)?1:-1;
这里应该是
strlen(a)>strlen(b)?c=1:c=-1;
2012-11-30 10:09
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
收藏
得分:0 
回复 2楼 StarFall
成功了 感谢啊~~~
2012-11-30 13:06
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
收藏
得分:0 
以下是引用wp231957在2012-11-30 06:33:36的发言:

我在这个帖子里写了一个字符串比较函数
你可以看看 要是有bug 请指出

https://bbs.bccn.net/thread-388996-1-1.html

看不懂啊 。。。。
2012-11-30 13:08
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
收藏
得分:0 
以下是引用锋了在2012-11-30 10:09:19的发言:

看了看,感觉
c=strlen(a)>strlen(b)?1:-1;
这里应该是
strlen(a)>strlen(b)?c=1:c=-1;

这样貌似是可以
错误是3L说的那个。。
2012-11-30 13:09
Sornets
Rank: 2
等 级:论坛游民
帖 子:102
专家分:61
注 册:2012-11-22
收藏
得分:0 
回复 5楼 木头人不是人
变成整数的话容易超限
2012-11-30 13:11
快速回复:自己写的比较一串数大小的自定义函数。。但有个bug改不过来
数据加载中...
 
   



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

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