标题:求电话号码
只看楼主
邹峰研
Rank: 2
等 级:论坛游民
帖 子:46
专家分:18
注 册:2020-3-4
结帖率:88.89%
已结贴  问题点数:20 回复次数:7 
求电话号码
题目描述

某人记忆力有点衰退,手机号码中某一位数字记不清楚,请编程帮他从候选的若干个号码中找出所有可能的号码。

输入描述

记忆中的手机号码,候选号码个数n以及n个候选号码。记不清位用?表示。

输出描述

可能的号码,中间隔一个空格。如果找不到,输出no

样例输入

139?8118205  5

13958118205  13923118205 13918118205 18918118205  18988118208
样例输出

13958118205 13918118205




这个代码,我一开始就有点麻烦,没什么思路,希望有大佬可以说明下!谢谢啦!

搜索更多相关主题的帖子: 输出 手机号码 号码 描述 电话号码 
2020-04-22 19:55
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
写个自己的 strcmp,特殊之处就是 问号 与任何字母比 都相等
2020-04-22 20:05
邹峰研
Rank: 2
等 级:论坛游民
帖 子:46
专家分:18
注 册:2020-3-4
得分:0 
回复 2楼 rjsp
OK,了解了,把这个函数忘记了,,,

今天再晚也是早,明天再早也是晚
2020-04-22 20:13
邹峰研
Rank: 2
等 级:论坛游民
帖 子:46
专家分:18
注 册:2020-3-4
得分:0 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    char a[12],b[12];
    int n,i,j,count=0,s=0;

    scanf("%s %d",a,&n);
    for(i=0;i<n;i++)
    {
        scanf("%s",b);
        for(j=0;j<11;j++)
        {
            if(a[j]==b[j] || a[j]=='?')
                count++;
        }
        if(count==11)
        {
            printf("%s",b);
            printf(" ");
            s++;
        }
    }
    if(!s)
        printf("no");

    return 0;
}


我写了另一个代码,strcmp不太会,但是这个代码运行有一个结果出不来,就是问题里那组数据,结果如下↓

今天再晚也是早,明天再早也是晚
2020-04-22 20:31
邹峰研
Rank: 2
等 级:论坛游民
帖 子:46
专家分:18
注 册:2020-3-4
得分:0 
回复 4楼 邹峰研
希望大家来找找问题哈!

今天再晚也是早,明天再早也是晚
2020-04-22 20:32
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
这种错误是不可原谅的,
因为C语言明确说了不建议将变量一股脑定义到函数头部,你却仍然这么做,故意给自己找不痛快。
2020-04-22 22:21
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
我没有更改你的代码算法,只是将变量定义到它应该待的地方,测试用例就通过了。

程序代码:
#include <stdio.h>

int main( void )
{
    char a[12];
    size_t n;
    scanf( "%s%zu", a, &n );

    size_t s = 0;
    for( size_t i=0; i!=n; ++i )
    {
        char b[12];
        scanf( "%s", b );

        size_t count = 0;
        for( size_t j=0; j!=11; ++j )
        {
            if( a[j]==b[j] || a[j]=='?' )
                ++count;
        }
        if( count == 11 )
        {
            printf( "%s ", b );
            ++s;
        }
    }
    if( !s )
        puts( "no" );
}

2020-04-22 22:28
邹峰研
Rank: 2
等 级:论坛游民
帖 子:46
专家分:18
注 册:2020-3-4
得分:0 
回复 7楼 rjsp
好的,多谢你的建议,我总是喜欢把变量全放在开头...。今后一定注意!

今天再晚也是早,明天再早也是晚
2020-04-24 18:29



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




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

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