| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1900 人关注过本帖
标题:[求助]有关完全平方数的问题·
只看楼主 加入收藏
可见光
Rank: 1
等 级:新手上路
帖 子:143
专家分:0
注 册:2007-6-15
收藏
 问题点数:0 回复次数:18 
[求助]有关完全平方数的问题·

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后
      的结果满足如下条件,即是结果。
#include "stdafx.h"
#include "math.h"
#include "stdio.h"
#include "conio.h"
int find(int t)
{
int i,s,j;
s=t+100;
i=sqrt(s);//报错位置
if(s==i*i)
{
s=s+168;
j=sqrt(s);//报错位置
if(s==j*j)
return(t);

}
}
int _tmain(int argc, _TCHAR* argv[])
{ int m,t;
for(t=1;t<10000;t++)
{
m=find(t);
while(m)
printf("%d",t);
}
getch();
return 0;
}

f:\ccc\5\5\5.cpp(12) : error C2668: “sqrt”: 对重载函数的调用不明确

大哥大姐 帮我分析下吧

搜索更多相关主题的帖子: 平方数 include int sqrt 
2007-09-05 11:25
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
被开方数不能是整数类型



by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]
2007-09-05 12:17
peswe
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2006-11-22
收藏
得分:0 

在vc6.0的环境下编译可以通过!~
#include <math.h>
#include "stdio.h"
#include "conio.h"
int find(int t)
{
int i,s,j;
s=t+100;
i=(int)sqrt(s);//报错位置
if(s==i*i)
{
s=s+168;
j=(int)sqrt(s);//报错位置
if(s==j*j)
return 1;

}
return 0;
}

int main(void)
{ int m,t;
for(t=1;t<10000;t++)
{
m=find(t);
if(m)
{
printf("%d\t",t);
printf("%f\t",sqrt(100+t));
printf("%f\n",sqrt(268+t));
}

}
return 0;
}
另外,给你看一下错误的原因:
Compiler Error C2668
'function' : ambiguous call to overloaded function

The specified overloaded function call could not be resolved. If you’ve encountered this error on code which compiled with an earlier version of Visual C++, please read Technote: Improved Conformance to ANSI C++ for more information.

An explicit cast of one or more of the actual parameters can resolve the ambiguity.

The following is an example of this error:

struct A {};
struct B : A {};
struct X {};
struct D : B, X {};

void func( X, X );
void func( A, B );
D d;
void main()
{
func( d, d ); // error, D has an A, B, and X
func( (X)d, (X)d ); // OK, uses func( X, X



可是在我的电脑上,如果不加强制类型转换的话,并不报错,而只是警告:
warning C4244: '=' : conversion from 'double' to 'int', possible loss of data;
不知道你的编译器是不是旧版本:

[此贴子已经被作者于2007-9-5 13:28:11编辑过]


C斗士~~~fighting!!!!
2007-09-05 13:17
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
新版本才会报错,只是警告说明类型检查不严格,就是老版本(VC6)




by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]
2007-09-06 18:02
栖柏
Rank: 2
等 级:论坛游民
威 望:3
帖 子:1103
专家分:17
注 册:2007-8-23
收藏
得分:0 

被开方数不能是整数类型
是被开方数,还是开方后的数啊

被开方数是整数应该没问题
可以自动转换为浮点型,这些天完全看了C程序设计,领悟不少,好多在论坛上问的问题
上面都会提及到
还是应该多看书,系统的看看书

最近看书,觉得对于C的学习,我想应该了解一些计算机原理比较好
学好C对于学算法有些益处,我好好学C啦
以后多向在论坛的各位前辈请教


You have lots more to work on! Never give up!c language!
2007-09-06 18:13
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
以下是引用栖柏在2007-9-6 18:13:23的发言:

被开方数不能是整数类型
是被开方数,还是开方后的数啊

被开方数是整数应该没问题
可以自动转换为浮点型,这些天完全看了C程序设计,领悟不少,好多在论坛上问的问题
上面都会提及到
还是应该多看书,系统的看看书

最近看书,觉得对于C的学习,我想应该了解一些计算机原理比较好
学好C对于学算法有些益处,我好好学C啦
以后多向在论坛的各位前辈请教

我说的非常清楚,是“被开方数”
被开方数不能是整形!





by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]

[此贴子已经被作者于2007-9-6 18:17:04编辑过]

2007-09-06 18:16
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
除非你重载sqrt函数,使它支持int,否则语言本身是不会支持的



by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]
2007-09-06 18:18
栖柏
Rank: 2
等 级:论坛游民
威 望:3
帖 子:1103
专家分:17
注 册:2007-8-23
收藏
得分:0 
那为什么我用的编译器不报错,可以运行,我回去查查
对了问一下,低的不是可以向高的转换吗

You have lots more to work on! Never give up!c language!
2007-09-06 18:19
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
以下是引用栖柏在2007-9-6 18:19:48的发言:
那为什么我用的编译器不报错,可以运行,我回去查查
对了问一下,低的不是可以向高的转换吗

相同的东西我不想再重复讲!!
“新版本才会报错,只是警告说明类型检查不严格,就是老版本”



by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]

2007-09-06 18:23
栖柏
Rank: 2
等 级:论坛游民
威 望:3
帖 子:1103
专家分:17
注 册:2007-8-23
收藏
得分:0 

哦,还是不太算明白我想问的问题,只可惜我的实战很少,学C太晚,LOW to HIGH
自己思考啦,麻烦啦,继续学习
函数原型是浮点数,没错的
可是为什么int被编译器转换为float 的呢?根据类型的转换规则,应该有编译器支持的呀
也就是说,能运行,也说明了转换吧。我用的有VC6.0
很多,我还不懂,请教中,多多关照。

[此贴子已经被作者于2007-9-6 18:33:58编辑过]


You have lots more to work on! Never give up!c language!
2007-09-06 18:27
快速回复:[求助]有关完全平方数的问题·
数据加载中...
 
   



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

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