zkmyyy @ 2022-12-16 07:36:26
WA代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a,b,c;
char s[100],ans[100],last;
scanf("%d",&n);
while(n--)
{
fgets(s,sizeof(s),stdin);
if(s[0]=='a'||s[0]=='b'||s[0]=='c')
{
last=s[0],s[0]=' ';
}
sscanf(s,"%d%d",&a,&b);
switch(last)
{
case'a':c=a+b;sprintf(ans,"%d+%d=%d",a,b,c);break;
case'b':c=a-b;sprintf(ans,"%d-%d=%d",a,b,c);break;
case'c':c=a*b;sprintf(ans,"%d*%d=%d",a,b,c);break;
}
printf("%s\n%d\n",ans,strlen(ans));
}
}
本蒟蒻瞎改之后AC了但是并不知道为什么这样改。
cin>>n;
n=n+1;
while(n--)
if(strlen(ans)!=0)
{
printf("%s\n%d\n",ans,strlen(ans));
}
求助大佬!求助大佬!求助大佬!
by Eleveslaine @ 2022-12-16 08:03:37
@zkmyyy gets
不是寄了吗,fgets
还能用吗
by zkmyyy @ 2022-12-16 08:13:23
@Franz_Liszt 是的
by Eleveslaine @ 2022-12-16 08:17:34
@zkmyyy
建议用 cin.getline(s,101)
因为我没用过fgets
输入完 n
后要 cin.getline or fgets
一次,因为有一个换行没读,即
4 // 这一行末尾的换行
a 64 46
275 125
c 11 99
b 46 64
这就是为什么输入