求大神改代码,acm的题,提交时报错怎么改,菜鸟一个
1515377.cpp: 在函数‘int main()’中:1515377.cpp:13:19: 错误:‘strlen’在此作用域中尚未声明
下边是代码
天大acm第4003题
源码
#include <iostream>
#include <stdio.h>
#define N 100005
using namespace std;
char x[N];
int num[N];
int main() {
int t,sum,ans,i;
scanf("%d",&t);
while(t--){
sum=0;
scanf("%s",x);
int len=strlen(x);
for(i=0;i<len;i++){
num[i]=x[i]-'0';
sum+=num[i];
}
ans=sum%10;
bool bn=true;
for(i=0;i<len;i++){
if(num[i]!=9){
bn=false;
}
}
int gh=len-1;
if(len-1==0){
num[len-1]=10;
bn=false;
}
if(bn==true){
num[gh]=9;
num[0]=10;
for(i=1;i<len-1;i++){
num[i]=0;
}
}
if(bn==false){
if(num[len-1]+10-ans>=10){
int bit=0;
bool f=true;
int u=len-1;
if(len-1==0){
num[len-1]=19;
f=false;
}
bool hu=true;
while(f){
if(hu){
if(num[u-1]+1==10){
bit++;
}else{
sum=sum-num[len-1]+1;
int lk=10-sum%10;
num[len-1]=lk;
num[u-1]+=1;
f=false;
}
u=u-1;
ans=1;
hu=false;
}else{
if(num[u]+1==10){
bit++;
num[u]=0;
u--;
ans=1;
}else{
num[u]=num[u]+1;
sum=sum-(bit-1)*9+1-num[len-1];
int jh=sum%10;
num[len-1]=10-jh;
f=false;
}
}
}
}else{
num[len-1] +=10-ans;
}
}
for(int i=0;i<len;i++)
printf("%d",num[i]);
printf("\n");
}
system("pause");
return 0;
}