鱼C论坛

 找回密码
 立即注册
查看: 2015|回复: 2

[已解决]小白又来求助了,路过的大神帮忙调教下

[复制链接]
发表于 2018-2-20 11:42:20 | 显示全部楼层 |阅读模式
30鱼币
这段代码是正确的,就是想知道该代码的执行流程是怎么样的,字符变量 shuru1 的作用是啥
  1. #include <stdio.h>

  2. //统计 序列 ei 出现的次数

  3. int main(void)
  4. {
  5.                 char shuru1 = 0, shuru2;
  6.                 int cishu = 0;
  7.                
  8.                 printf("请输入一个带有 ei 序列的英文句子:\n");
  9.                
  10.                 while((shuru2 = getchar()) != '#')
  11.                 {
  12.                                 if(shuru1 == 'e' && shuru2 == 'i')
  13.                                 {
  14.                                                 cishu++;
  15.                                 }
  16.                                 shuru1 = shuru2;
  17.                 }
  18.                
  19.                 printf("输入的英文句子中 序列 ei 共出现了 %d 次 \n", cishu);
  20.                
  21.                
  22.                 getch();
  23.                 return 0;
  24. }
复制代码
最佳答案
2018-2-20 11:42:21
本帖最后由 inverseli 于 2018-2-20 14:05 编辑
  1. #include <stdio.h>

  2. //统计 序列 ei 出现的次数

  3. int main(void)
  4. {
  5.                 char shuru1 = 0, shuru2;
  6.                 int cishu = 0;
  7.                
  8.                 printf("请输入一个带有 ei 序列的英文句子:\n");
  9.                
  10.                 while((shuru2 = getchar()) != '#')#当输入#号时,输入结束
  11.                 {
  12.                                 if(shuru1 == 'e' && shuru2 == 'i')#进入判断,
  13.                                 {
  14.                                                 cishu++;
  15.                                 }
  16.                                 shuru1 = shuru2;
  17.                 }
  18.                
  19.                 printf("输入的英文句子中 序列 ei 共出现了 %d 次 \n", cishu);
  20.                
  21.                
  22.                 getchar();
  23.                 return 0;
  24. }
复制代码

过程是这样的,如果输入的是'aeiad',getchar()一次接收一个值,shuru2 ='a',此时shuru1=0,不符合判断条件,
往下执行,shuru1 = shuru2 = 'a',接着接收'e',shuru2 ='e',shuru1='a',不符合判断条件,接着向下执行,shuru1 =shuru2 = 'e',接着接收'i',
shuru2= 'i',符合判断条件,次数+1,同理往下执行。
shuru1在这里边起一个中间变量的作用,把输入的值也就是shuru2的值暂时放入shuru1里边,因为一执行完判断立刻就执行shuru1 = shuru2,
这样可以判断ei序列是否是紧挨着的

最佳答案

查看完整内容

过程是这样的,如果输入的是'aeiad',getchar()一次接收一个值,shuru2 ='a',此时shuru1=0,不符合判断条件, 往下执行,shuru1 = shuru2 = 'a',接着接收'e',shuru2 ='e',shuru1='a',不符合判断条件,接着向下执行,shuru1 =shuru2 = 'e',接着接收'i', shuru2= 'i',符合判断条件,次数+1,同理往下执行。 shuru1在这里边起一个中间变量的作用,把输入的值也就是shuru2的值暂时放入shuru1里边,因为一执行完判断立刻就执 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-20 11:42:21 | 显示全部楼层    本楼为最佳答案   
本帖最后由 inverseli 于 2018-2-20 14:05 编辑
  1. #include <stdio.h>

  2. //统计 序列 ei 出现的次数

  3. int main(void)
  4. {
  5.                 char shuru1 = 0, shuru2;
  6.                 int cishu = 0;
  7.                
  8.                 printf("请输入一个带有 ei 序列的英文句子:\n");
  9.                
  10.                 while((shuru2 = getchar()) != '#')#当输入#号时,输入结束
  11.                 {
  12.                                 if(shuru1 == 'e' && shuru2 == 'i')#进入判断,
  13.                                 {
  14.                                                 cishu++;
  15.                                 }
  16.                                 shuru1 = shuru2;
  17.                 }
  18.                
  19.                 printf("输入的英文句子中 序列 ei 共出现了 %d 次 \n", cishu);
  20.                
  21.                
  22.                 getchar();
  23.                 return 0;
  24. }
复制代码

过程是这样的,如果输入的是'aeiad',getchar()一次接收一个值,shuru2 ='a',此时shuru1=0,不符合判断条件,
往下执行,shuru1 = shuru2 = 'a',接着接收'e',shuru2 ='e',shuru1='a',不符合判断条件,接着向下执行,shuru1 =shuru2 = 'e',接着接收'i',
shuru2= 'i',符合判断条件,次数+1,同理往下执行。
shuru1在这里边起一个中间变量的作用,把输入的值也就是shuru2的值暂时放入shuru1里边,因为一执行完判断立刻就执行shuru1 = shuru2,
这样可以判断ei序列是否是紧挨着的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-2-20 15:18:44 | 显示全部楼层
inverseli 发表于 2018-2-20 14:02
过程是这样的,如果输入的是'aeiad',getchar()一次接收一个值,shuru2 ='a',此时shuru1=0,不符合判断 ...

噢,原来是这样,俺还以为时候一次性读取一个字符串呢,谢谢你哈。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 13:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表