已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > C/C++ > 讨论/求助

标题: 又是C语言问题~~字符型运算和for循环i++那块

作者: @Ta

时间: 2013-06-05

点击: 8942

//输入12。执行后的结果是12,怎么算出来的??
#include "stdio.h"
main()
{
    char ch1,ch2;    int n1,n2;
    ch1 = getchar ();    ch2 = getchar ();
    n1 = ch1 - '0';    n2 = n1 * 10 + (ch2-'0');
    printf("%d\n",n2);
}
    

再加一个,还是for 循环里的i++问题#include "stdio.h"
main()
{
    int s,i;
    for(s = 0,i = 1;i<3;i++,s+=i);
    printf("%d\n",s);
}
//s 输出的是多少呢??

[隐藏样式|查看源码]


『回复列表(18|隐藏机器人聊天)』

1. for的输出是
0
2
(/@Ta/2013-06-05 10:59//)

2. 第一个程序:比如字符'1'对应的ascii码是49,'0',对应48,这样相减就为1了。依此类推。不过我觉得这种直接输入12再回车的方式不规范,应该输入1回车,再输入2回车,这样。不过会出问题,因为ch2会存回车。
(/@Ta/2013-06-05 11:12//)

3. 第二个程序也不规范,我宁愿写成:
 #include "stdio.h"

int main()
{
  int s=0,i;          for(i=1;i<3;i++)
  {
     s +=i;
  }
  printf("%d\n",s);
}
最后会输出3。因为1+2=3。
(/@Ta/2013-06-05 11:26//)

4.  
(/@Ta/2013-06-05 11:27//)

5. @春风沉醉的晚上,是你的浏览器而不是论坛造成的。不要使用uc。
(/@Ta/2013-06-05 11:40//)

6. @老虎会游泳 哦,原来是这样。
(/@Ta/2013-06-05 11:54//)

7. 看了楼主的几个问题,想对楼主说句:换书吧!一本好书很重要。
(/@Ta/2013-06-05 12:14//)

8. @老虎会游泳   额……那个for 循环出来的是5…………for 语句后面有个分号~~~第一个输入12,输出还是12………我就是不理解过程~~
(/@Ta/2013-06-05 12:21//)

9. @春风沉醉的晚上  这是老师找的一些题~其中大多数就是考你细心程度的……几百个题里我不理解的就这么几个
(/@Ta/2013-06-05 12:24//)

10. 哦,在3楼回答错了。。忘了在s+=i;之前还有个i++;了!
(/@Ta/2013-06-05 12:24//)

11. 第一个关键的地方在于字符型数据在内存当中是被翻译成ASCII码,0是48,1是49,2是50.当你输入的时候,ch1=49,ch2=50.那么n1就是1,n2=10+2
(/@Ta/2013-06-05 12:35//)

12. ①i=1,s=0+2
②i=2,s=2+3
i<3所以输出5
这个地方,最有意思的是i++,i=1的时候,先输出1,需要加1后才进行下一步s+=i
(/@Ta/2013-06-05 12:45//)

13. @ 哦,第一个我理解了,我原来一直以为输入12输入12。12就是一个整体~~ch1==ch2来着……原来如此~~谢谢你了!
(/@Ta/2013-06-05 16:00//)

14. @  额……第二个~i<3所以输出5,就是这儿有问,不是判断i<3后是终止循环…………我贼~~那个分号!!我下意识的把那个输出函数也包含到for 循环里去了!!额……这才是我一直的问题啊~~又是考验人的细心程度………
(/@Ta/2013-06-05 16:16//)

15. @终极神天。。。。。。当我编译运行发现确实只有单独一个5输出时,我惊讶了。然后我才明白你说的for后面有个分号是什么意思。
(/@Ta/2013-06-05 16:27//)

16. @春风沉醉的晚上,我认为第二个是一个非常规范的代码,它充分体现了for循环的高效与简洁。虽然我没仔细看结果看错了。
(/@Ta/2013-06-05 16:33//)

17. @老虎会游泳  额……好吧~我知道了
(/@Ta/2013-06-05 19:39//)

18. @老虎会游泳 我想程序的主要代码和目的是这句: s  =i; 但是那样写的话,就没有突出重点,不利于阅读,而且以后想扩展增加功能什么的,不好动手改。而且它和3楼的程序(我承认我改的有点错误,不过应该不影响理解的)运行效率是一样的。但是3楼的应该好懂点(我觉得好懂点)。
(/@Ta/2013-06-05 22:35//)

回复需要登录

8月5日 03:59 星期二

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1