标题:这个strlen函数有问题吗?
只看楼主
有味
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2010-4-3
结帖率:100%
 问题点数:0 回复次数:6 
这个strlen函数有问题吗?
程序代码:
#include<iostream>
#include<string>
using namespace std;

const int size=1000010;
char a[size];
int b[size],c[size];
int main ()
{
    int len;
    __int64 count=1;
    while (cin>>a)
    {
          len=strlen(a);
          int j=0;
          for (int i=len-1;i>=0;i--)
              b[j++]=a[i]-'0';
          c[0]=b[0];
          b[len]=1; 
          for (int i=1;i<len;i++)
          {
              if (b[i]<c[i-1])
              {
                  b[i]=b[i]+10;
                  b[i+1]=b[i+1]-1;              
              }
              c[i]=b[i]-c[i-1];  
          }   
    if (c[len-1]==0)
    printf("%lld. IMPOSSIBLE\n",count++);
    else
    {
        printf("%lld. ",count++); 
        for (int i=len-1;i>=0;i--)
            printf("%d",c[i]);
        printf("\n");
    }
    }
    return 0;   
} 
但在poj上交去总是wa,找不出原因。困惑!!!
搜索更多相关主题的帖子: 函数 strlen 
2010-06-02 14:53
思忆季节
Rank: 2
来 自:珠海
等 级:论坛游民
帖 子:42
专家分:62
注 册:2010-5-12
得分:0 
#include<iostream>
#include<string>
using namespace std;

const int size=1000010;
char a[size];
int b[size],c[size];
int main ()
{
    int len;
    __int64 count=1;
    while (cin>>a)
    {
          len=strlen(a);
          int j=0;
          for (int i=len-1;i>=0;i--)
              b[j++]=a[i]-'0';
          c[0]=b[0];
          b[len]=1;
          for (/*int*/ i=1;i<len;i++)
          {
              if (b[i]<c[i-1])
              {
                  b[i]=b[i]+10;
                  b[i+1]=b[i+1]-1;              
              }
              c[i]=b[i]-c[i-1];  
          }   
    if (c[len-1]==0)
    printf("%lld. IMPOSSIBLE\n",count++);
    else
    {
        printf("%lld. ",count++);
        for (/*int*/ i=len-1;i>=0;i--)
            printf("%d",c[i]);
        printf("\n");
    }
    }
    return 0;   
}
应该是这样吧,那个错误是说你重复定义的意思啦
2010-06-03 22:50
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
得分:0 
poj 上先看看编译器版本和规范啊,一般都是GCC和G++。

2010-06-03 23:12
gaoce227
Rank: 4
来 自:山东
等 级:业余侠客
帖 子:134
专家分:218
注 册:2008-4-5
得分:0 
变量重复定义了

[ 本帖最后由 gaoce227 于 2010-6-5 11:13 编辑 ]
2010-06-05 09:21
有味
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2010-4-3
得分:0 
回复 2楼 思忆季节
不是意思我弄错了,应该是Compile Error
他的提示是:
Main.cc: In function 'int main()':
Main.cc:14: error: 'strlen' was not declared in this scope
Main.cc:30: error: 'printf' was not declared in this scope
Main.cc:33: error: 'printf' was not declared in this scope
按你那样改过来还是不对

2010-06-07 22:02
有味
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2010-4-3
得分:0 
用的是G++的编译器
2010-06-07 22:03
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
得分:0 
string库 和 cstring库 很不同。。。
而且,C++和C混编也不好玩。。。
只是编译错误而已,根据提示改下就好。。
2010-06-08 11:12



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




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

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