编写程序读取输入,读到#停止,报告ei出现的次数。注意:该程序要记录前一个字符和当前字符。#include<stdio.h>int main(void){ char ch,ch_before='\0'; int num = 0; while ((ch = getchar()) != '#') { if (ch_before == 'e'&&ch == 'i') { num++; } ch_before = ch; } printf("ei has %d .", num); getchar(); getchar(); return 0;}ch_before=ch;这里为什么要赋值,还有ch_before==e,直接就可以确定前一个数是e?_before是一个函数工具吗?
1 回答
已采纳

onemoo
TA贡献883条经验 获得超454个赞
ch_before 就是一个普通的变量名啊!
因为要求检测读 "ei",所以这个代码意图用 ch_before 来保存上次读到的字符,ch 保存这次读到的字符。只要这个 ch_before == 'e'&&ch == 'i' 条件成立不就是输入中有 ei 了嘛。
那么:
ch_before = ch; 这个赋值就是把本次读到的字符赋值给 ch_before,到下次判断时 ch_before 中的不就是上次读到的字符了嘛
ch_before == 'e' 这就是判断 ch_before 保存的字符是不是 'e' 而已
- 1 回答
- 0 关注
- 1740 浏览
添加回答
举报
0/150
提交
取消