|
![]() | 作者: ma2751_cn [ma2751_cn]
![]() |
登录 |
本人初学C,因为找不到老师教,只有自己学,一句话:难!!! 十五天学到if语句,跟着习题写个程序,但用Turbo C 2。0编译后运行,只输出:This example program can only be run . from within the IDE . 因本人E文差,所以不只何意。 现写出源代码,忘各位帮忙查找错误,包括语法,格式。 习题:输入X值,输出Y值。 main() { int x,y; scanf("d%",&x); if(x>=-32768&&x<=32767) { if(x>=1) if(x<10) y=2*x-1; else y=3*x-11; else y=x; } else printf("溢出"); printf("y=d%",y); } 另注册表大多也是按十六进制储存的,那么还请问: CC934BD1DA59A317F25EC4FE6D5834D1(注册表里的) 最高是字母‘F(16)’,怎么样把它们和ASCII码里的字符对应呢/?就是说怎么样把密码还原。 还有在C中,如:a&&b为真,那么在内存中是不是这样储存的 00000000 00000001 ? 还请大家帮忙解答~~~ |
地主 发表时间: 10/26 18:43 |
![]() | 回复: balsai [balsai] ![]() |
登录 |
你是不是很喜欢C呀 如果是的话你能不能和我交个朋友呀 我的QQ是176221425 我期中考试后会上网的 |
B1层 发表时间: 10/26 19:00 |
![]() | 回复: liangmeng [liangmeng] ![]() |
登录 |
多试一下不就行了吗? |
B2层 发表时间: 10/26 22:51 |
![]() | 回复: love413 [love413] ![]() |
登录 |
>>>>把d%写成%d就好啦! >>>>你说的是不是41=A这样啊?啥密码啊??还有f=15 >>>>我不懂!因该看了编译原理会知道吧!我刚看了两章晕倒了! >>>>我也刚学c不久,假如不是为了考试学c也可以加我呵呵!! 我发现你跟我很象啊!! >>>初学C >>>自己学 >>>难!!! >>>E文差 哈哈哈!!! 俺qq21250600 |
B3层 发表时间: 10/26 23:30 |
![]() | 回复: ma2751_cn [ma2751_cn] ![]() |
登录 |
不行呀~~ 把d%该为d%还是不OK~~~~ 现象个头先一样~~~ 还请指教~ |
B4层 发表时间: 10/27 00:48 |
![]() | 回复: blindeaf [blindeaf] ![]() |
登录 |
你的程序经过以上几个朋友的改正,应该没错了。是不是你的turboc2.0的路径没设好。你在diraction菜单下看看你的turboc2.0是不是和设置得一样. |
B5层 发表时间: 10/27 17:00 |
![]() | 回复: free [free] ![]() |
登录 |
if(x>=1) if(x<10) y=2*x-1; else y=3*x-11; else y=x; 改成如下怎样? if(x>=1) {if(x<10) y=2*x-1; else y=3*x-11; } else y=x; [此贴被 长征(free) 在 10月27日21时25分 编辑过] |
B6层 发表时间: 10/27 21:1 |
![]() | 回复: ma2751_cn [ma2751_cn] ![]() |
登录 |
经证明是我的TC2设置错了,因为我DOWNLOAD的TC2并不完整,所以我DOWNLOAD了几个TC,然后把它们合在一起使用,呵呵~~~~现在好了。 还有 if(x>=-32768&&x<=32767) 这个语句并不能正确处理,当输入数据在int范围内时,程序能够正常运行,但如果不在int范围内则并没有输出‘溢出’字样。还请帮忙看看应该处理。 对于程序运行一次就要关闭窗口的问题,能不能加上个while循环处理?然后在printf("y=%d",y);处加上个换行符/n? 现在刚刚学到循环语句,进度慢呀!不知道要学到几时,还希望大家能够帮助谢谢!如可以的话请加我QQ:55398299让我更容易的提问,同时也节省了20CN的空间,我不想为了我个人问题而占用20CN太多的空间。 谢谢大家的关心/ |
B7层 发表时间: 10/28 01:06 |
![]() | 回复: anmy [anmy] ![]() |
登录 |
因为你用了 int a,b; 所以,当你输入的数不在-32768和32767之间是,程序不会处理。 改成float a,b;就ok~~ !! |
B8层 发表时间: 10/28 13:55 |
![]() | 回复: coolfeel [coolfeel] ![]() |
登录 |
我也是一个喜欢C的人,跟你们也是一样,整天沉迷C和汇编,想与大家多多交流交流,我的QQ9959776,如果有想交朋友的就加我吧 |
B9层 发表时间: 10/28 19:41 |
![]() | 回复: ma2751_cn [ma2751_cn] ![]() |
登录 |
TO: 蓝白鸟 用int,当输入的数不在范围内时,程序照样运行,只是程序溢出计算错误了。但是我已经用了个if()else语句了,怎么不起作用? |
B10层 发表时间: 10/29 19:31 |
![]() | 回复: anmy [anmy] ![]() |
登录 |
int x,y; 已经说明了x,y的取值不能超出-32768_32767.可你在程序的组后一个else其实是假设了x不在int范围内,这就自相矛盾了. 按照你题目的意思,而且一定要用if() else的话,正确的程序如下: main() {float x,y; scanf("%f",&x); if(x>=-32768&&x<=32767) { if(x>=1) if(x<10) y=2*x-1; else y=3*x-11; else y=x; } else printf("YiChu"); printf("y=%f\n",y); } 不过你在运行的时候还会发现当输入一个int范围外的数时,运行结果是: YiChuy=0.000000(这里用"YiChu"代替你程序里的溢出)。想要取消这个不足,可以用下面这个程序: main() {float x,y; scanf("%f",&x); if(x>=1) if(x<10) y=2*x-1; else y=3*x-11; else y=x; if(x>=-32768&&x<=32767) printf("y=%f\n",y); else printf("YiChu\n"); } 相信你看过上面两个程序之后,一切都会明白的。我也是一个刚学c的菜鸟, 如果愿意,我的qq:4888902~~呵呵~~ |
B11层 发表时间: 10/29 21:46 |
![]() | 回复: lovegirl [lovegirl] ![]() |
登录 |
我对C 语言也很喜欢。很热忠。我的qq是 57290860 希望和大家做朋友,我找你们。如果有没有找全的找我啊。 看到这么简单的文章我很高兴啊,因为总算有我可以看懂一些的了 呵呵 |
B12层 发表时间: 10/30 20:16 |
![]() | 回复: ma2751_cn [ma2751_cn] ![]() |
登录 |
其实如果用了‘float x,y;’那么还要‘x>=-32768&&x<=32767’来干什么呢??不是吗? |
B13层 发表时间: 10/31 19:09 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号