Xing_Kong_C @ 2023-10-01 02:15:27
1.一开始以为没有itoa函数,然后搜到itoa函数的原代码直接敲上去还是clion上可以运行但是洛谷中编译失败。 2.然后以为哪些头文件没有,用了万能头文件还是编译失败。 3.以为没有fflush函数,改换gets将缓冲区的回车清掉,结果还是编译失败。 4.
cpp#include "bits/stdc++.h"
using namespace std;
char c1[25]={0},c2[25]={0},c3[25]={0};
int main()
{
int n,y,a1,a2,a3,s1,s2,s3,k;
cin>>n;
fflush(stdin);
for(int i=1;i<=n;i++)
{
c1[25]={0},c2[25]={0},c3[25]={0};
gets(c1);
if(c1[0]=='a')
{
y=1;
}
else if(c1[0]=='b')
{
y=2;
}
else if(c1[0]=='c')
{
y=3;
}
else
{
for(int j=0;j<=20;j++)
c2[j]=c1[j];
goto model1;
}
k=0;
for(int j=2;j<=20;j++)
c2[k++]=c1[j];
model1:
a1=strtol(c2,NULL,10);
itoa(a1,c3,10);
s1=strlen(c3);
k=0;
for(int j=s1+1;j<=20;j++)
c3[k++]=c2[j];
a2=strtol(c3,NULL,10);
itoa(a2,c3,10);
s2=strlen(c3);
if(y==1)
{
a3=a1+a2;
itoa(a3,c3,10);
s3=strlen(c3);
cout<<a1<<'+'<<a2<<'='<<a3<<endl<<s1+s2+s3+2<<endl;
}
else if(y==2)
{
a3=a1-a2;
itoa(a3,c3,10);
s3=strlen(c3);
cout<<a1<<'-'<<a2<<'='<<a3<<endl<<s1+s2+s3+2<<endl;
}
else if( y==3)
{
a3=a1*a2;
itoa(a3,c3,10);
s3=strlen(c3);
cout<<a1<<'*'<<a2<<'='<<a3<<endl<<s1+s2+s3+2<<endl;
}
}
return 0;
}
by MsgNotFound @ 2023-10-01 06:51:34
建议使用Devc++编辑器,这个代码的编译错误的原因是没有找到itoa和gets的定义 @Xing_Kong_C
by DioxygenDifluoride @ 2023-10-01 08:27:36
itoa 不是标准库函数,gets 被弃用,当然用不了啦
by DioxygenDifluoride @ 2023-10-01 08:28:28
可以用 sprintf 代替 itoa
by DioxygenDifluoride @ 2023-10-01 08:28:51
@Xing_Kong_C
by Xing_Kong_C @ 2023-10-01 21:45:24
@DioxygenDifluoride 好的谢谢
by Xing_Kong_C @ 2023-10-01 21:47:28
@42_TZY 好的谢谢