| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3407 人关注过本帖
标题:关于math.h里的abs()编译错误,说是找不到定义范围
只看楼主 加入收藏
Magic_July
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:109
注 册:2012-9-25
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:8 
关于math.h里的abs()编译错误,说是找不到定义范围
程序代码:
#include"stdio.h"
#include"string.h"
#include"math.h"
int x[22][22];
int ff(int a,int b)
{
    int f,y[4],i,su;
    y[0]=x[a-1][b];
    y[1]=x[a][b+1];
    y[2]=x[a+1][b];
    y[3]=x[a][b-1];
    if(x[a][b]>0)
    f=1;
    else
    f=0;
    for(i=0,su=0;i<4;i++)
    {
        if((y[i]>0)==f)
        su-=abs(y[i]);
        else
        su+=abs(y[i]);
        if(y[i]<0)
        y[i]=-1*y[i];
    }
    return su;
}
int main()
{
    int n,m,i,j,ma,mi,mj;
    while(scanf("%d%d",&n,&m),n+m)
    {
        for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        scanf("%d",&x[i][j]);
        ma=ff(1,1);
        mi=1;mj=1;
        for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
            if(ma<ff(i,j))
            {
                ma=ff(i,j);
                mi=i;
                mj=j;
            }
        }
        printf("%d %d %d\n",mi,mj,ma);
        memset(x,0,sizeof(x));
    }
}

RT问题求解释
搜索更多相关主题的帖子: abs 
2013-04-15 20:13
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1483
专家分:9055
注 册:2010-3-16
收藏
得分:0 
g++ 编译通不过,bcc 编译成功。
运行结果:

2 3
1
2
3
4
5
6
1 1 -6
2013-04-15 21:36
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
你的程序代码逻辑没有问题,在我的vc6.0也正常编译,ccccc.exe - 0 error(s), 0 warning(s)
我不会附图片,不然就给你看了

Maybe
2013-04-15 21:40
Magic_July
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:109
注 册:2012-9-25
收藏
得分:0 
这真是蛋疼,有谁能给点解释。是编译器的错吗?
2013-04-16 08:41
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
啥编译器  错误信息是啥

DO IT YOURSELF !
2013-04-16 09:06
Magic_July
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:109
注 册:2012-9-25
收藏
得分:0 
回复 5楼 wp231957
是C-free
错误是不在定义范围
2013-04-17 14:29
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
以下是引用Magic_July在2013-4-17 14:29:37的发言:

是C-free
错误是不在定义范围

给你个建议,去看一下abs的函数声明

如果我没猜错的话,你们该学习一下什么叫自动的类型提升,什么类型会被提升

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-04-17 17:10
Magic_July
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:109
注 册:2012-9-25
收藏
得分:0 
回复 7楼 peach5460
第一我定义的都是int  在计算中,我没有除,会有小数出现的可能,
第二,我不清楚abs声明是什么,百度不出来,手边现在只有手机
2013-04-17 18:26
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1483
专家分:9055
注 册:2010-3-16
收藏
得分:10 
c-free默认用的就是g++编译器。

把abs函数改成fabs的话g++可以通过编译。而且在g++的include里找不到abs的定义,只有fabs的定义。
2013-04-17 23:53
快速回复:关于math.h里的abs()编译错误,说是找不到定义范围
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015049 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved