一、用gets出错的
编译条件:C++(clang++11)
#include<bits/stdc++.h>
using namespace std;
static const int maxn=1e5+5;
char solve[maxn];
int main()
{
long long num;
while( nullptr!=gets(solve) )
{
int len=-1;
len=strlen(solve);
if( 1==len && solve[0]=='0' )
{
break;
}
while( 1 )
{
num=0;
len=strlen(solve);
if( 1==len )
{
printf("%d\n",solve[0]-'0');
break;
}
else
{
for(int i=0; i<len; ++i)
{
num+=( solve[i]-'0' );
}
sprintf(solve,"%lld",num);
}
}
}
return 0;
} 编译错误 收起 编译错误:您提交的代码无法完成编译 a.cpp:11:18: error: use of undeclared identifier 'gets' while( nullptr!=gets(solve) ) ^ 1 error generated.
二、方法一——用scanf解决
编译条件:C++(clang++11)
#include<bits/stdc++.h>
using namespace std;
static const int maxn=1e5+5;
char solve[maxn];
int main()
{
long long num;
while( ~scanf("%s",solve) )
{
int len=-1;
len=strlen(solve);
if( 1==len && solve[0]=='0' )
{
break;
}
while( 1 )
{
num=0;
len=strlen(solve);
if( 1==len )
{
printf("%d\n",solve[0]-'0');
break;
}
else
{
for(int i=0; i<len; ++i)
{
num+=( solve[i]-'0' );
}
sprintf(solve,"%lld",num);
}
}
}
return 0;
} 
京公网安备 11010502036488号