逆天了我,abs在openjuge不能用
abs函数用法
功 能: 求整数的绝对值
9438967提交状态
状态: Compile Error
编译错误信息 :
/home/runner/temp/9544556.165202/Main.cc: In function ‘int main()’:
/home/runner/temp/9544556.165202/Main.cc:54:33: error: ‘abs’ was not declared in this scope
if(max<=abs(flag[i]))
^
/home/runner/temp/9544556.165202/Main.cc:54:33: note: suggested alternative:
In file included from /home/runner/temp/9544556.165202/Main.cc:3:0:
/usr/include/c++/5/cmath:99:5: note: ‘std::abs’
abs(Tp _x)
^
源代码 :
#include<cstdio>
#include<cstring>
#include<cmath>
int main()
{
int n,k,i,t,len,max;
char s1[13],s2[13],temp[10];
int flag[12];
scanf("%d",&n);
while(n–)
{
memset(flag,0,sizeof(flag));
for(t=1;t<=3;++t)
{
scanf("%s%s%s",s1,s2,temp);
len=strlen(s1); //两边个数肯定相等,所以两边长度也一样
if(strcmp(temp,"even")==0)//如果平衡
{
for(i=0;i<len;++i)
{
flag[s1[i]-‘A’]=10; //说明两边都为真,将标记数组置为10
flag[s2[i]-‘A’]=10;
}
}
else if(strcmp(temp,"up")==0)//说明左边重
{
for(i=0;i<len;++i)
{
if(flag[s1[i]-‘A’]!=10)
++flag[s1[i]-‘A’]; //左边加一
if(flag[s2[i]-‘A’]!=10)
–flag[s2[i]-‘A’]; //右边减一
}
}
else
{
for(i=0;i<len;++i) //说明右边重
{
if(flag[s1[i]-‘A’]!=10)
–flag[s1[i]-‘A’]; //左边减一
if(flag[s2[i]-‘A’]!=10)
++flag[s2[i]-‘A’]; //右边加一
}
}
}
max=0;
k=0;
for(i=0;i<12;++i)
{
if(flag[i]==10)
continue;
if(max<=abs(flag[i]))
{
max=abs(flag[i]);
k=i;
}
}
if(flag[k]>0)
printf("%c is the counterfeit coin and it is heavy.\n",’A’+k);
else
printf("%c is the counterfeit coin and it is light.\n",’A’+k);
}
return 0;
}
那就老老实实用fbs吧!
9438970提交状态
状态: Accepted
源代码 :
#include<cstdio>
#include<cstring>
#include<cmath>
int main()
{
int n,k,i,t,len,max;
char s1[13],s2[13],temp[10];
int flag[12];
scanf("%d",&n);
while(n–)
{
memset(flag,0,sizeof(flag));
for(t=1;t<=3;++t)
{
scanf("%s%s%s",s1,s2,temp);
len=strlen(s1); //两边个数肯定相等,所以两边长度也一样
if(strcmp(temp,"even")==0)//如果平衡
{
for(i=0;i<len;++i)
{
flag[s1[i]-‘A’]=10; //说明两边都为真,将标记数组置为10
flag[s2[i]-‘A’]=10;
}
}
else if(strcmp(temp,"up")==0)//说明左边重
{
for(i=0;i<len;++i)
{
if(flag[s1[i]-‘A’]!=10)
++flag[s1[i]-‘A’]; //左边加一
if(flag[s2[i]-‘A’]!=10)
–flag[s2[i]-‘A’]; //右边减一
}
}
else
{
for(i=0;i<len;++i) //说明右边重
{
if(flag[s1[i]-‘A’]!=10)
–flag[s1[i]-‘A’]; //左边减一
if(flag[s2[i]-‘A’]!=10)
++flag[s2[i]-‘A’]; //右边加一
}
}
}
max=0;
k=0;
for(i=0;i<12;++i)
{
if(flag[i]==10)
continue;
if(max<=fabs(flag[i]))
{
max=fabs(flag[i]);
k=i;
}
}
if(flag[k]>0)
printf("%c is the counterfeit coin and it is heavy.\n",’A’+k);
else
printf("%c is the counterfeit coin and it is light.\n",’A’+k);
}
return 0;
}