| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 671 人关注过本帖
标题:[求助]不知出错在哪里?
只看楼主 加入收藏
shangvven
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-7-29
收藏
 问题点数:0 回复次数:2 
[求助]不知出错在哪里?

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后
      的结果满足如下条件,即是结果。请看具体分析:
2.程序源代码:
#include "math.h"
main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
 { x=sqrt(i+100);   /*x为加上100后开方后的结果*/
  y=sqrt(i+268);   /*y为再加上168后开方后的结果*/
   if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
    printf("\n%ld\n",i);
 }
}

这是经典c程序100例里的第3题
我在turboc 2.0编译失败
失败信息:

Error: Lvalue required in function main

warning: 'x' is assigned a value which is never used i

warning: 'y' is assigned a value which is never used i

个人认为
已经有x=sqrt(i+100);    y=sqrt(i+268);
所以if条件在这不起作用了
请高手指教!
多谢了!!




搜索更多相关主题的帖子: 源代码 开方 sqrt 结果 
2006-08-06 21:14
jyycom
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2006-5-18
收藏
得分:0 
奇怪

把你的代码复制到cfree里面提示出错
但是自己重新写一边却通过编译了
#include "math.h"
main()
{long int i, x,y;
for(i=0;i<100000;i++)
{x=sqrt(i+100);
y=sqrt(i+268);
if(x*x==i+100&&y*y==i+268)
{printf("%ld\n",i);
}
}
}
结果是
21
261
1581


重新学习C语言!
2006-08-06 21:56
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用shangvven在2006-8-6 21:14:03的发言:

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后
      的结果满足如下条件,即是结果。请看具体分析:
2.程序源代码:
#include "math.h"
main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
 { x=sqrt(i+100);   /*x为加上100后开方后的结果*/
  y=sqrt(i+268);   /*y为再加上168后开方后的结果*/
   if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
    printf("\n%ld\n",i);
 }
}

这是经典c程序100例里的第3题
我在turboc 2.0编译失败
失败信息:

Error: Lvalue required in function main

warning: 'x' is assigned a value which is never used i

warning: 'y' is assigned a value which is never used i

个人认为
已经有x=sqrt(i+100);    y=sqrt(i+268);
所以if条件在这不起作用了
请高手指教!
多谢了!!




程序没有错,错的只是中英文字符不同而已.前者占两个字符,后者只占一个字符.
你用我的试试.

#include<stdio.h>
#include<math.h>
void main()
{

long i,x,y;
for(i=1;i<100000;i++)
{
x=(long)sqrt(i+100);
y=(long)sqrt(i+268);
if(x*x==(i+100)&&y*y==(i+268))
{
printf("%ld\n",i);
}
}
}


倚天照海花无数,流水高山心自知。
2006-08-06 22:10
快速回复:[求助]不知出错在哪里?
数据加载中...
 
   



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

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