逆天了我,abs在openjuge不能用

来源:互联网 发布:淘宝网商银行贷款循环 编辑:程序博客网 时间:2024/04/28 10:30
***逆天了我,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; }
原创粉丝点击