| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1735 人关注过本帖
标题:为什么用vs++6.0可以出来结果,而vs2010却不可以,高手请进。。。
只看楼主 加入收藏
吴军旗
Rank: 5Rank: 5
等 级:职业侠客
帖 子:286
专家分:308
注 册:2011-9-14
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:7 
为什么用vs++6.0可以出来结果,而vs2010却不可以,高手请进。。。
1.# include <stdio.h>
# include <math.h>
void main ()
{
int a,b;
    scanf("%d",&a);
    b=sqrt(a);
    printf("%d\n",b);

错误原因:
   
图片附件: 游客没有浏览图片的权限,请 登录注册

2.#include<stdio.h>
#include<math.h>
#include<stdlib.h>
void main()
{int a;
float b;//此时的b为实数。
b=sqrt(a);
printf("%f",b);
system("pause");
}
错误原因:
图片附件: 游客没有浏览图片的权限,请 登录注册

搜索更多相关主题的帖子: include system 
2011-09-23 01:16
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:5 
你去看下sqrt函数的原型,可能是不同编译器对待sqrt的不同,TC和VC对sqrt是不同的,C语言求平方根函数:sqrt
功 能: 计算一个非负实数的平方根
函数原型: 在VC6.0中的math.h头文件的函数原型为double sqrt(double);
说明:sqrt系Square Root Calculations(平方根计算),通过这种运算可以考验CPU的浮点能力。
头文件:math.h
程序例:
#include<math.h>
#include<stdio.h>
int main(void)
{
double x = 4.0, result;
result = sqrt(x); //result*result = x
printf("The square root of %lf is %lf\n", x, result);
return 0;
}
VC 2008后为重载函数,原型为 float sqrt (float),double sqrt (double),double long sqrt(double long)
注意没有int sqrt (int)

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-23 06:42
吴军旗
Rank: 5Rank: 5
等 级:职业侠客
帖 子:286
专家分:308
注 册:2011-9-14
收藏
得分:0 
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
void main()
{double b,a=4.0;
b=sqrt(a);
printf("%f",b);
system("pause");
}



行了,谢谢

最惨的不是忘不了悲伤的回忆,而是那些悲伤的回忆却开始记不清。。。
2011-09-23 09:41
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
行了就可以了?其实你知道到底是什么回事吗?

授人以渔,不授人以鱼。
2011-09-23 09:52
李岩
Rank: 2
等 级:论坛游民
帖 子:14
专家分:27
注 册:2010-10-8
收藏
得分:0 
sqrt((double)a)这样写就行了,2010没有double型的,
2011-09-23 09:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 5楼 李岩
2010没有double型,是什么意思?

授人以渔,不授人以鱼。
2011-09-23 09:59
吴军旗
Rank: 5Rank: 5
等 级:职业侠客
帖 子:286
专家分:308
注 册:2011-9-14
收藏
得分:0 
就是不要用 int 型的。。。

最惨的不是忘不了悲伤的回忆,而是那些悲伤的回忆却开始记不清。。。
2011-09-23 14:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不要用int型的,那“重载”的提示是什么意思?所谓“重载”,就是对不同的数据类型的参数都可以用同一个函数名,但其实是两个不同的函数。也就是说,给出这种警告的编译器,可能有int版本的sqrt()函数,或者其它种类的数据类型的sqrt()版。不是不要用就解决问题的。

顺便说一下:重载是C++的东西,经典C是没有的。其实,你自己写一个
double sqrt(int)
函数也可以通过编译,也没问题。


[ 本帖最后由 TonyDeng 于 2011-9-23 15:15 编辑 ]

授人以渔,不授人以鱼。
2011-09-23 15:06
快速回复:为什么用vs++6.0可以出来结果,而vs2010却不可以,高手请进。。。
数据加载中...
 
   



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

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