C语言的问题,高手请进

#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 时出错.

#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个回答  2013-12-03
#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;
}//类型不同,可强制转换一下...不过有精度丢失的问题
第2个回答  2013-12-03
看提示是“数据类型转换异常”
位置应该是(我猜的)
x=sqrt(i+100); 这一行
sqrt 是求开平方的函数,结果是double 类型,而 x 是long 型变量

C语言高手请进来11
第一题:运行后,循环第一轮后输出8,第二轮后输出7,第三轮输出6,第四轮时达到要求退出循环,结束程序。选B 第二题:这个是找出小于等于50的整数中能被2、3、7整除的数,这个题直接从答案里找一个,所以选C 第三题:运行到这个时for(j=0;j < 3;j++){ if(j%2) continue;x++;} x++ ...

编程高手请进!(C语言)
printf("\\n NEXT?(Y\/N):");\/*选择是否重新游戏*\/ scanf("%c",&yes);} } 2.include <stdio.h> void main(){ int gj, mj, xj, t1, t2;for (gj=1; gj<=20; gj++){ for (mj=1; mj<34; mj++){ xj=100-gj-mj;t1=xj%3;t2=5*gj+3*mj+xj\/3;if (t1==0&&t2==100...

高分C语言问题~~·高手请进
思路:A[n]中,n代表有多少堆果子,A中的元素代表各堆的果子数目 int getValue(int A[]){ 初始 int S=0 1. (数组A)n个数字从小到大排序 (例如:1,2,9)2. 取上步中最小的两个数相加之和为一个M , S=S+M 3. 数组A中除去最小的两个数,然后将M加进去形成一个新数组A元素个数为 n...

几道c语言题目,还请高手不吝赐教,谢谢!不要嫌烦哈……
答案:A 我认为是C,求教……if(a>b) 是不成立的,后面的语句不运行!a,b,c值不变

C语言编程问题.请高手进(附源码)!!!HELP
printf("请输入所需要的功能:");scanf("%d",&a);switch(a){ case 1:fcxxwh();break;case 2:;break;case 3:;break;case 4:;break;default:printf("输入错误,请重新打开程序输入!");} } void fcxxwh(void){int a,b,c;printf("1.录入\\t");printf("2.修改\\t");printf("3.删除\\...

c语言二级问题,请高手详细解答下
先根据运算符优先级,原式等效于 y=(--x||++y);||运算符的短路效应,--x值为非零,所以子表达式--x||++y值为1,且后半部分的++y未执行,因此y值为1

c语言问题,高手请进谢谢!!!
即i+i--->这两个i些时都是3;而不是一个2,一个3;4。再一个++i 此时i加1得到i,i=3+1=4;由上面的理解知道i此时已经是4,5、由上面四步得到一个i=4,i+i+i的式子,写入数据得到12 今天上课还在纠结这个问题,一看到你的问题突然想起来了!呵呵 ...

c语言高手请进
include <stdio.h> int main(){ int i,j,k;for(i=0;i<9;i++){ for(j=0;j<9;j++){ for(k=0;k<9;k++){ if((i+j+k)<10 && i!=0)printf("%d%d%d ",i,j,k);} } } return 0;} 都类似的,只要改改if里的条件就可以了...q币啊.....

C语言高手请进~~~
static struct s a[3]={1,&a[1],2,&a[2],3,&a[0]},这里定义了一个 结构数组a ,并且将其初始化了,其中a[0]={1,&a[1]},a[1]={2,&a[2]} a[2]={3,&a[0]},后面ptr = &a[1];就是让ptr指向a[1],所以ptr的值就是{2,&a[2]},也就是ptr->i1=2,答案d又...

c语言高手请进 编译结果太多该如何输出
这叫运行结果,不叫编译。你可以在源码中加入文件操作,把它输出到文件中。或者先编译好程序,然后在命令提示符中运行,使用重定向输出结果到文件中。例如你的文件名是test.exe,可以在命令提示符中先切换到你的exe所在路径,然后输入test.exe > 1.txt,这样结果就会被输出到文件1.txt中。

相似回答
大家正在搜