标题:一个语句不懂 各位大侠帮忙解读
只看楼主
huangjianjun
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-8-29
结帖率:100%
已结贴  问题点数:20 回复次数:12 
一个语句不懂 各位大侠帮忙解读
#include<stdio.h>
int main(void)
{
 char former=0,present;
 int count=0;
 while((present=getchar()) != '#')
 {
  if((former == 'e') && (present == 'i')) count++;
  former = present;
 }
 printf("ei has appeared %d times\n",count);
}
(former = present;)这个语句什么意思
搜索更多相关主题的帖子: present former count 
2011-08-29 21:41
编程达人
Rank: 2
等 级:论坛游民
帖 子:62
专家分:66
注 册:2011-8-11
得分:0 
former = present;
这就是一个赋值语句
2011-08-29 22:28
风生钧起
Rank: 4
来 自:江西
等 级:业余侠客
帖 子:383
专家分:246
注 册:2011-7-26
得分:0 
,,,,,,,,,,,,,,,,,,,,

墨一世红颜倾醉己    霁天谁与话风流

修仙``````````````````````````````````````````````
2011-08-29 22:31
呵呵呵。。
Rank: 2
等 级:论坛游民
帖 子:43
专家分:52
注 册:2010-6-11
得分:0 
把present的值赋给former
例如:present='i',那么执行这条语句former=present;后former的值也是'i'.
2011-08-29 22:40
FlynnLan
Rank: 2
等 级:论坛游民
帖 子:36
专家分:60
注 册:2011-5-26
得分:0 
1楼和三楼正解

低调做人!低调做事!高调学编程!
2011-08-29 22:56
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
得分:2 
程序代码:
#include<stdio.h>

 int main(void)

 {

 char former=0,present;

 int count=0;

 while((present=getchar()) != '#')/*把输入的 字符与‘#’比较,等于就跳出循环*/

 {
   if((former == 'e') && (present == 'i')) count++;/*条件语句:当former == 'e'与present == 'i成立时,就执行语句count++;*/
   former = present;/*每次循环把通过输入得到的字符赋值给字符变量,former*/

 }

 printf("ei has appeared %d times\n",count);

return 0;/*跑哪去啊*/

 }





收到的鲜花
  • leech582011-08-30 00:28 送鲜花  3朵  

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-08-30 00:22
leech58
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:18
专家分:58
注 册:2011-8-29
得分:0 
是一个字符间的赋值语句  楼上解释得很详细了哦

诚心交流!
2011-08-30 00:28
菜鸟7号
Rank: 2
等 级:论坛游民
帖 子:21
专家分:17
注 册:2011-8-29
得分:0 
6楼接单很详细
2011-08-30 20:20
huangjianjun
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-8-29
得分:0 
回复 6楼 A13433758072
可不可以不要啊
我一直认为可以不要这句的
former = present;
可事实是要的;
能不能帮我解释下为什么
2011-08-30 20:49
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
得分:10 
回复 9楼 huangjianjun
仅供参考: 当不要 former = present;这语句的情况:当输入读取非字符‘﹟’时, while ((present=getchar()) != ' # ' )循环开始,遇到条件语句if ((former == ' e ' ) && (present== ' i ' ))只有这两条件都为真时才执行 count++;语句,什么时候两个条件都为真呢?(present== ' i ' )这个表达式比较容易理解,也就是判断输入字符是否等于'i',那(former == ' e ' )呢?如果没有 former = present;语句,那么你的former永远都是你初始化时,赋值的0,那 former = present;语句有什么作用呢?其实这语句就是把你输入的字符赋值给former变量,让它参加下轮循环的比较,那在什么时候if ((former == ' e ' ) && (present== ' i ' ))语句才为真呢?只有在上一次循环中 ,present变量把通过getchar()得到的字符'e'赋值给former , former = present;而接着这一轮循环present变量被赋值为'i'时,条件为真,if ((former == ' e ' ) && (present== ' i ' )) 手机马字有些乱,勿怪!

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-08-30 21:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-348661-1-1.html




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

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