一个C语言源代码,为什么运行后会出错?求大神解答
#include<stdio.h>#include<math.h>voidmain(){doubles,m,x,y,z;x=0.5*11.9*1000*60*60;pri...
#include<stdio.h>
#include<math.h>
void main()
{
double s,m,x,y,z;
x=0.5*11.9*1000*60*60;
printf("如需要结束程序请输入@并按回车键结束!");
printf("本程序仅用于计算ξ,并已设b=1000,h0=60,fc=11.9,请输入M:");
scanf("%lf",m);
while(m!='@')
{
y=m*1000000;
z=sqrt(1-y/x);
s=1-z;
printf("经计算得ξ的值为:%lf\n",s);
printf("请输入M:");
scanf("%lf",m);
}
} 展开
#include<math.h>
void main()
{
double s,m,x,y,z;
x=0.5*11.9*1000*60*60;
printf("如需要结束程序请输入@并按回车键结束!");
printf("本程序仅用于计算ξ,并已设b=1000,h0=60,fc=11.9,请输入M:");
scanf("%lf",m);
while(m!='@')
{
y=m*1000000;
z=sqrt(1-y/x);
s=1-z;
printf("经计算得ξ的值为:%lf\n",s);
printf("请输入M:");
scanf("%lf",m);
}
} 展开
4个回答
展开全部
输入要加&,你m是double,怎么可能等于@,所以肯定是死循环结束不了。
#include<stdio.h>
#include<math.h>
void main()
{
double s,m,x,y,z;
x=0.5*11.9*1000*60*60;
printf("如需要结束程序请输入@并按回车键结束!");
printf("本程序仅用于计算ξ,并已设b=1000,h0=60,fc=11.9,请输入M:");
scanf("%lf",&m);
while(getchar()!='p')
{
y=m*1000000;
z=sqrt(1-y/x);
s=1-z;
printf("经计算得ξ的值为:%lf\n",s);
printf("请输入M:");
scanf("%lf",&m);
}
}
#include<stdio.h>
#include<math.h>
void main()
{
double s,m,x,y,z;
x=0.5*11.9*1000*60*60;
printf("如需要结束程序请输入@并按回车键结束!");
printf("本程序仅用于计算ξ,并已设b=1000,h0=60,fc=11.9,请输入M:");
scanf("%lf",&m);
while(getchar()!='p')
{
y=m*1000000;
z=sqrt(1-y/x);
s=1-z;
printf("经计算得ξ的值为:%lf\n",s);
printf("请输入M:");
scanf("%lf",&m);
}
}
展开全部
scanf("%lf",m); 改成 scanf("%lf",&m);
m!='@' 类型不一致,没有可比性
可以改为 m!=0
m!='@' 类型不一致,没有可比性
可以改为 m!=0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1. scanf函数时对m用取地址符 &m 这样
2. 用了sqrt函数, 编译加上-lm参数
3. m是double型, 与'@'不好比较, 可能导致程序异常。建议使用某个值退出, 比如输入的是负数就退出while (m < 0) 类似这样。
2. 用了sqrt函数, 编译加上-lm参数
3. m是double型, 与'@'不好比较, 可能导致程序异常。建议使用某个值退出, 比如输入的是负数就退出while (m < 0) 类似这样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
scanf 输入后面给m加上取地址符& 即scanf(“%lf”,&m);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询