| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 392 人关注过本帖
标题:[求助]请问,M,和Mx怎么都是错的?
只看楼主 加入收藏
chlgkmoney
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-9-12
收藏
 问题点数:0 回复次数:3 
[求助]请问,M,和Mx怎么都是错的?

我是一个新手,下面是我做的,请高手帮我评评意见。
我不知道,为什么,在最后我将%lf,改成%ld,或者%d,结果M都是错的,Mx到现在我也不知道该怎么搞,没有结果。
谢谢。
#include "stdio.h"
#include "math.h"
#include "conio.h"
main ()
{
int t01,t02;
double q,l,x,t,M,Mx;
window(20,5,50,25);
textbackground(2);
clrscr ();
textcolor(3);
window (10,5,30,15);
cprintf ("please choose the type of support(left):,(right)\n");
cprintf ("1 stand for hinged support\n");
cprintf ("2 stand for fixed support\n");
cprintf ("please input the load q:\nplease input the span l:\n");
cprintf ("please input the distance of the poit from 1 : l\n");
scanf ("%d,%d,%lf,%lf",&t01,&t02,&q,&l,&x);
t=x*l;
switch (t01)
{
case 1:switch (t02)
{
case 1:M=q*l*l/8,Mx=q*t*(l-t)/2;break;
case 2:M=q*l*l/16,Mx=q*t*(l-t)/2-q*t;break;
}
break;
case 2:switch (t02)
{
case 1:M=q*l*l/16,Mx=q*t*(l-t)/2-q*(l-t);break;
case 2:M=q*l*l/24,Mx=q*t*(l-t)/2-q*l*l/12;break;
}
default: printf ("error\n");
}
cprintf ("the moment is %lf:\n",M);
cprintf ("Mx= %lf:\n",Mx);
getch ();
}

2006-09-12 20:21
HuiSky
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2006-5-13
收藏
得分:0 
scanf ("%d,%d,%lf,%lf",&t01,&t02,&q,&l,&x);
只要求输入四个数,却用5个数去存,x是一随机值.所以出错了。
我觉得没必要弄两个窗口,可去掉第二个window().

2006-09-12 20:40
chlgkmoney
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-9-12
收藏
得分:0 

写谢谢,我改一改试一试。

2006-09-13 07:45
chlgkmoney
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-9-12
收藏
得分:0 
这是我修改后的,但是又有一个问题,为什么必须要写成:scanf ("%d,%d,%lf,%lf,%lf",&t01,&t02,&q,&l,&x);而不可以写成scanf ("%d,%d,%d,%d,%d",&t01,&t02,&q,&l,&x);或是:scanf ("%d,%d,%ld,%ld,%ld",&t01,&t02,&q,&l,&x);
我改完后的结果都是0。我搞不懂为什么。还有运行的时候排版比较乱,怎样可以让他靠左对齐呢?谢谢。



#include "stdio.h"
#include "math.h"
main ()
{
int t01,t02;
double q,l,x,t,M,Mx;
cprintf ("please choose the type of support(left):,(right)\n");
cprintf ("1 stand for hinged support\n");
cprintf ("2 stand for fixed support\n");
cprintf ("please input the load q:\nplease input the span l:\n");
cprintf ("please input the distance of the poit from 1 : l\n");
scanf ("%d,%d,%lf,%lf,%lf",&t01,&t02,&q,&l,&x);
t=x*l;
switch (t01)
{
case 1:switch (t02)
{
case 1:M=q*l*l/8,Mx=q*t*(l-t)/2;break;
case 2:M=q*l*l/16,Mx=q*t*(l-t)/2-q*t;break;
}
break;
case 2:switch (t02)
{
case 1:M=q*l*l/16,Mx=q*t*(l-t)/2-q*(l-t);break;
case 2:M=q*l*l/24,Mx=q*t*(l-t)/2-q*l*l/12;break;
}
default: printf ("error\n");
}
cprintf ("the moment is %lf:\n",M);/*为什么不可以改成%d,或是%ld*/
cprintf ("Mx= %lf:\n",Mx);/*为什么不可以改成%d,或是%ld*/
getch ();
}
2006-09-13 08:02
快速回复:[求助]请问,M,和Mx怎么都是错的?
数据加载中...
 
   



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

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