#include<stdio.h>
#include<math.h>
void main()
{
long int i,x,y,z;
for(i=1;i<=100000;i++)
{
x=sqrt(i+100);
y=sqrt(i+168);
if(x*x==(i+100)&&y*y==(i+168))
printf("%ld",i);
}
报错:c:\windows\system32\hsh.cpp(8) : warning C4244: '=' : conversion from 'double' to 'long', possible loss of data
c:\windows\system32\hsh.cpp(9) : warning C4244: '=' : conversion from 'double' to 'long', possible loss of data
c:\windows\system32\hsh.cpp(13) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.
C语言的问题,高手请进
答案:5 悬赏:10 手机版
解决时间 2021-08-11 12:34
- 提问者网友:寂寞撕碎了回忆
- 2021-08-11 05:14
最佳答案
- 五星知识达人网友:酒安江南
- 2021-08-11 06:10
#include<stdio.h>
#include<math.h>
void main()
{
long int i,x,y,z;
for(i=1;i<=100000;i++)
{
x=sqrt(i+100);
y=sqrt(i+168);
if(x*x==(i+100)&&y*y==(i+168))
printf("%ld",i);
}
}
少一个花括号
全部回答
- 1楼网友:西风乍起
- 2021-08-11 09:17
根据代码来看 是少了一个 }
- 2楼网友:拾荒鲤
- 2021-08-11 08:43
最后少了一个大括号。
- 3楼网友:神的生死簿
- 2021-08-11 08:35
#include <stdio.h> #include <math.h>
int main() { long int i,x,y; for(i=1;i<=100000;i++) { x=(long)sqrt(i+100); y=(long)sqrt(i+168); if(x*x==(i+100)&&y*y==(i+168)) printf("%ld\n",i); } return 0; }//类型不同,可强制转换一下...不过有精度丢失的问题
- 4楼网友:拜訪者
- 2021-08-11 07:33
看提示是“数据类型转换异常”
位置应该是(我猜的)
x=sqrt(i+100); 这一行
sqrt 是求开平方的函数,结果是double 类型,而 x 是long 型变量
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯