| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1012 人关注过本帖
标题:n哪里有错误啊,有1个编译错误
只看楼主 加入收藏
小修
Rank: 1
来 自:山东 济南
等 级:新手上路
帖 子:14
专家分:4
注 册:2013-6-21
结帖率:50%
收藏
已结贴  问题点数:5 回复次数:11 
n哪里有错误啊,有1个编译错误
#include"stdio.h"
#include"math.h"
main()
{
    int n;
    float root;
    printf("please input n:");
    scanf("%d",&n);
    if(n>=0)
    {root=sqrt(n);
    printf("%f",root);
    }
    else
    {root=sqrt(ans(n));
    printf("%fi",root);
    }
}
搜索更多相关主题的帖子: include please 
2013-07-12 08:29
小修
Rank: 1
来 自:山东 济南
等 级:新手上路
帖 子:14
专家分:4
注 册:2013-6-21
收藏
得分:0 
在线等

奋斗为不错过!
2013-07-12 08:44
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:1 
你那个ans()是什么意思?

思考赐予新生,时间在于定义
2013-07-12 09:24
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
root=sqrt(ans(n));这行代码,你想用来实现什么?

思考赐予新生,时间在于定义
2013-07-12 09:42
吕同斌
Rank: 1
等 级:新手上路
帖 子:7
专家分:1
注 册:2011-10-16
收藏
得分:1 
printf("%fi") 啥意思
2013-07-12 09:45
杨凡123
Rank: 2
等 级:论坛游民
帖 子:7
专家分:26
注 册:2013-7-4
收藏
得分:1 
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
main()
{
    int n;
    float root;
    printf("please input n:");
    scanf("%d",&n);
    if(n>=0)
    {root=sqrt(n);
    printf("%f\n",root);
    }
    else
    {root=sqrt(abs(n));/*取绝对值的函数有问题*/
    printf("%f\n",root);
    }
    system("pause");
}
2013-07-12 09:51
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
使用数学库函数的时候,所有函数的返回类型都是double的,所以定义n的时候要用double,root也要用double来定义,这样损失的精度会较少。另外,如果这行代码root=sqrt(abs(n));是用来实现n的绝对值的开方,那用错了库函数,应该使用fabs(),修改一下,代码如下:
程序代码:
#include<stdio.h>
#include<math.h>

 int main()

 {
     double n;
     double root;
     printf("please input n:");
     scanf("%lf",&n);
     if(n>=0)
     {root=sqrt(n);
     printf("%lf",root);
     }
     else
     {root=sqrt(fabs(n));
     printf("%lf",root);
     }
     return 0;

 } 



 

思考赐予新生,时间在于定义
2013-07-12 10:03
浪漫横行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:127
专家分:291
注 册:2013-4-30
收藏
得分:1 
main()前应加void ,如果不加则默认为int型,则在程序末尾应加return 0;
2013-07-17 11:41
奥特满
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2013-3-24
收藏
得分:1 
回复 8楼 浪漫横行
非也,道友自己验证一下就知道了。
2013-07-17 16:49
XiaoXiao_Ren
Rank: 3Rank: 3
来 自:西安
等 级:论坛游侠
威 望:1
帖 子:80
专家分:198
注 册:2013-7-17
收藏
得分:1 
回复 9楼 奥特满
#include"stdio.h"
#include"math.h"
main()
{
    int n;
    float root;
    printf("please input n:");
    scanf("%d",&n);
    if(n>=0)
    {root=sqrt(n);
    printf("%f",root);
    }
    else
    {root=sqrt(ans(n));  //这个ans函数是否错了  是fabs()吧
    printf("%fi",root);  //这里%fi多写了个i吧
    }
}


编译时库函数没有引进来  修改后重新编译 gcc -g test.c -o test -lm 试试

[ 本帖最后由 XiaoXiao_Ren 于 2013-7-17 17:29 编辑 ]

否极泰来
2013-07-17 17:27
快速回复:n哪里有错误啊,有1个编译错误
数据加载中...
 
   



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

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