| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1017 人关注过本帖
标题:[求纠错]GHacker的解谜过关游戏
只看楼主 加入收藏
方形仙人球
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-11-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
[求纠错]GHacker的解谜过关游戏
GHacker的解谜过关游戏
题目描述
GHacker最近痴迷于一个新上市的解谜游戏,其中一关的过关是破解一个字符串S。经过3天的冥思苦想,GHacker成功的搞明白了这其中的奥秘,把串S中的整数取出来求和,就可以过关了。但是GHacker的数学实在糟糕。他无法在短暂的时间内算出来,只好求助Jackie。Jackie观察到虽然每次出现的数字不同,但是其它的符号并不会变化。于是Jackie编写了一个非常短的程序,帮助GHacker把这一关过了。

输入
输入为串S,只有一行。

输出
串S中用非数字(0~9)分隔开的非负整数之和,不会超出int类型的数据范围。

样例输入
`13?:[7514],54.487=="(438922x159??392)%032\n111cdef120$95;
样例输出
447899
提示

scanf()可以解决这个问题,注意转义字符和格式控制字符。




我的想法是,用抑制符剔除符号,保留数并相加,但是一运行就出错。。。(编译没错。。。)

#include <stdio.h>
int main()
{
    int a,b,c,d,e,f,g,h,i,j,k;
    scanf("%*c%d%*c%*c%*c%d%*c%*c%d%*c%d%*c%*c%*c%*c%d%*c%d%*c%*c%d%*c%*c%d%*c%*c%d%*c%*c%*c%*c%d%*c%d%*c",a,b,c,d,e,f,g,h,i,j,k);
    printf("%d",a+b+c+d+e+f+g+h+i+j+k);
    return 0;
}

下面是某人的程序,表示看不懂。。。



#include<stdio.h>
int main()
{
    int i,sum,num;
    char str[1000];
    while(scanf("%s",str)!=EOF)
    {
        num=sum=0;
        for(i=0;;i++)
        {
            if(str[i]>='0' && str[i]<='9')
                num=num*10+str[i]-'0';
            else
            {
                sum=sum+num;num=0;
                if(str[i]=='\0')break;
            }
        }
        printf("%d\n",sum);
    }
    return 0;
}
搜索更多相关主题的帖子: 游戏 成功 字符串 符号 
2011-11-02 22:17
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:10 
哪里不懂?写得很清晰了

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2011-11-04 06:44
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:10 
scanf中,你给整型变量赋一个字符肯定出错,你应多看书从基本的看起,做起,
2011-11-04 09:45
快速回复:[求纠错]GHacker的解谜过关游戏
数据加载中...
 
   



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

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