标题:【求助】,这段代码错在哪里了?
只看楼主
汪小贱
Rank: 2
等 级:论坛游民
帖 子:24
专家分:36
注 册:2017-1-23
结帖率:83.33%
已结贴  问题点数:20 回复次数:5 
【求助】,这段代码错在哪里了?
/*
问题描述
  给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一:
    1:两个字符串长度不等。比如 Beijing 和 Hebei
      2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing
        3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况2)。
        比如 beijing 和 BEIjing
          4:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Beijing 和 Nanjing
            编程判断输入的两个字符串之间的关系属于这四类中的哪一类,给出所属的类的编号。
            输入格式
              包括两行,每行都是一个字符串
              输出格式
                仅有一个数字,表明这两个字符串的关系编号
                样例输入
BEIjing
beiJing
                样例输出
                3
*/
#include<stdio.h>
#include<string .h>
#include<stdlib.h>
int main()
{
    char a[10];
    char b[10];
    int i = 0;
    int c = 0;
    int len1 = 0, len2 = 0;
    gets(a);
    gets(b);
    len1 = strlen(a);
    len2 = strlen(b);
    if (len1 != len2)
        printf("1");
    if (len1==len2)
    {
        if (strcmp(a, b) == 0)
                c = 2;
        if (strcmp(a, b) != 0 && strcmp(strlwr(a), strlwr(b)) == 0)
                c = 3;
        if (strcmp(a, b) != 0)
                c = 4;
    }
    if (c = 2)
        printf("2");
    if (c = 3)
        printf("3");
    if (c = 4)
        printf("4");
    return 0;
}
搜索更多相关主题的帖子: 区分大小写 beijing 字符串 而且 字母 
2017-03-08 14:03
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
是编译不过  还是运行不过  怎么问这么模糊嫩

DO IT YOURSELF !
2017-03-08 14:32
Leo_L
Rank: 2
等 级:论坛游民
帖 子:21
专家分:27
注 册:2017-2-26
得分:10 
注意“=”和“= =”的使用,

这是我做过修改的,你试试

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
    char a[10];
    char b[10];
    int i = 0;
    int c = 0;
    int len1 = 0, len2 = 0;
    gets(a);
    gets(b);
    len1 = strlen(a);
    len2 = strlen(b);
    if (len1 != len2)
        printf("1");
    if (len1==len2)
    {
        if (strcmp(a, b) == 0)
                c = 2;
        else if (strcmp(a, b) != 0 && strcmp(strlwr(a), strlwr(b)) == 0)
                c = 3;
        else   // if(strcmp(a, b) != 0 )
                c = 4;
    }
    if(c==2)//if (c = 2)
        printf("2");
    if(c==3)//if (c = 3)
        printf("3");
    if(c==4)//if (c = 4)
        printf("4");
    return 0;
}

元气少女Leo_L
2017-03-08 15:08
mnmn4429
Rank: 4
等 级:业余侠客
帖 子:64
专家分:245
注 册:2017-2-21
得分:0 
#include<string .h>
.往前移一格
2017-03-08 15:14
mnmn4429
Rank: 4
等 级:业余侠客
帖 子:64
专家分:245
注 册:2017-2-21
得分:10 
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
    char a[10];
    char b[10];
    int i;
    int len1 , len2 ;
    gets(a);
    gets(b);
    len1 = strlen(a);
    len2 = strlen(b);
    if(len1 != len2)
        printf("1");
    else
    {
        for(i=0;i<len1;i++)
        {
            if(a[i] != b[i])
                break;
        }
        if(i == 4)
            printf("2");
        else
        {
            for(;i<len1;i++)
            {
                if(toupper(a[i]) != toupper(b[i]))
                {   
                    printf("4");
                    break;
                }
            }
            if(i == 4)
                printf("3");
        }
    }
    return 0;
}
没搞懂strcmp是什么意思,我就用了我的办法
2017-03-08 15:59
汪小贱
Rank: 2
等 级:论坛游民
帖 子:24
专家分:36
注 册:2017-1-23
得分:0 
谢谢!问题已经解决了!
2017-03-08 19:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-474858-1-1.html




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

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