Dr丶温 发表于 2018-2-20 11:42:20

小白又来求助了,路过的大神帮忙调教下

这段代码是正确的,就是想知道该代码的执行流程是怎么样的,字符变量 shuru1 的作用是啥#include <stdio.h>

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

int main(void)
{
                char shuru1 = 0, shuru2;
                int cishu = 0;
               
                printf("请输入一个带有 ei 序列的英文句子:\n");
               
                while((shuru2 = getchar()) != '#')
                {
                                if(shuru1 == 'e' && shuru2 == 'i')
                                {
                                                cishu++;
                                }
                                shuru1 = shuru2;
                }
               
                printf("输入的英文句子中 序列 ei 共出现了 %d 次 \n", cishu);
               
               
                getch();
                return 0;
}

inverseli 发表于 2018-2-20 11:42:21

本帖最后由 inverseli 于 2018-2-20 14:05 编辑

#include <stdio.h>

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

int main(void)
{
                char shuru1 = 0, shuru2;
                int cishu = 0;
               
                printf("请输入一个带有 ei 序列的英文句子:\n");
               
                while((shuru2 = getchar()) != '#')#当输入#号时,输入结束
                {
                              if(shuru1 == 'e' && shuru2 == 'i')#进入判断,
                              {
                                                cishu++;
                              }
                              shuru1 = shuru2;
                }
               
                printf("输入的英文句子中 序列 ei 共出现了 %d 次 \n", cishu);
               
               
                getchar();
                return 0;
}
过程是这样的,如果输入的是'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序列是否是紧挨着的

Dr丶温 发表于 2018-2-20 15:18:44

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

噢,原来是这样,俺还以为时候一次性读取一个字符串呢{:10_266:},谢谢你哈。。。。
页: [1]
查看完整版本: 小白又来求助了,路过的大神帮忙调教下