论坛: 编程破解 标题: 初学C的问题。 复制本贴地址    
作者: 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号