| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 443 人关注过本帖
标题:这个错在哪里呢?
只看楼主 加入收藏
郭俊森
Rank: 1
等 级:新手上路
帖 子:27
专家分:3
注 册:2013-2-28
结帖率:57.14%
收藏
已结贴  问题点数:20 回复次数:6 
这个错在哪里呢?
#include<stdio.h>
int strcmp(char *s1,char *s2)
{char *m,*n;
int i,d;
for(m=s1,n=s2;*s2!='\0'||*s1!='\0';s2++,s1++)
{d=*s1-*s2;
if(d>0) {i=1;break;}
else if(d<0) {i=-1;break;}
else i=0;
return i;
}
void main()
{char a[81],b[81];
   gets(a);
gets(b);
    printf("%d",strcmp(a,b));
}
2013-06-06 20:30
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
收藏
得分:5 
strcmp函数只会返回一次,不会因为循环体而有多次返回值。而且
if(d>0) {i=1;break;}
 else if(d<0) {i=-1;break;}
 else i=0;
 return i;  //返回值只有当两个字符串的首字符相等才会有返回i值

C++菜鸟
2013-06-06 21:24
郭俊森
Rank: 1
等 级:新手上路
帖 子:27
专家分:3
注 册:2013-2-28
收藏
得分:0 
谢谢了,我早已经解决了,还少一个大括号
2013-06-06 23:20
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:5 
路过!!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-06-06 23:24
逆风而前
Rank: 7Rank: 7Rank: 7
来 自:福建
等 级:黑侠
威 望:7
帖 子:193
专家分:567
注 册:2013-2-14
收藏
得分:5 
#include<stdio.h>
int strcmp(char *s1,char *s2)
{
    char *m,*n;
    int i,d;
    for(m=s1,n=s2;*s2!='\0'||*s1!='\0';s2++,s1++)
    {
        d=*s1-*s2;
        if(d>0) {i=1;break;}
        else if(d<0) {i=-1;break;}
        else i=0;
    }
    return i;
}
void main()
{
    char a[81],b[81];
    gets(a);
    gets(b);
    printf("%d",strcmp(a,b));
}
2013-06-07 10:08
逆风而前
Rank: 7Rank: 7Rank: 7
来 自:福建
等 级:黑侠
威 望:7
帖 子:193
专家分:567
注 册:2013-2-14
收藏
得分:0 
#include<stdio.h>
int strcmp(char *s1,char *s2)
{
    char *m,*n;
    int i,d;
    for(m=s1,n=s2;*s2!='\0'||*s1!='\0';s2++,s1++)
    {
        d=*s1-*s2;
        if(d>0) {i=1;break;}
        else if(d<0) {i=-1;break;}
        else i=0;
    }
    return i;
}
void main()
{
    char a[81],b[81];
    gets(a);
    gets(b);
    printf("%d",strcmp(a,b));
}
2013-06-07 10:08
猫小喵
Rank: 2
来 自:计算机专业
等 级:论坛游民
帖 子:29
专家分:77
注 册:2013-5-12
收藏
得分:5 
#include<stdio.h>

char strcmp(char *s1,char *s2)
{
    char *m,*n;
    int i,d;
    for(m=s1,n=s2;*s2!='\0'||*s1!='\0';s2++,s1++)
    {
        d=*s1-*s2;
        if(d>0)
        {
            i=1;
            break;
        }
        else if(d<0)
        {
            i=-1;
            break;
        }
        else
            i=0;
    }
    return i;
}
void main()
{
    char a[81],b[81];
    gets(a);
    gets(b);
    printf("%s",strcmp(a,b));
}

你差个括号还有你声明的为char 函数返回也为char  当然输出的也得为字符串的形势


做一个爱编程得女生
2013-06-07 22:31
快速回复:这个错在哪里呢?
数据加载中...
 
   



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

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