gpt4 book ai didi

c - 编写一个程序,读取输入 # 并报告序列 ei 出现的次数

转载 作者:太空宇宙 更新时间:2023-11-04 08:39:19 25 4
gpt4 key购买 nike

编写一个程序,读取输入 # 并报告序列 ei 出现的次数

我有这个问题,我在这里找到了一个代码,但我无法弄清楚 int c1 部分的作用。这是代码:

#include <stdio.h>
int main(void) {
int c;
int ei_count = 0;
while ((c = getchar())!= '#') {
if (c == 'e') {
int c1 = getchar();
if (c1 == 'i')
ei_count++;
}
}
printf("ei appeared %d times\n", ei_count);
return(0);
}

我的问题是,if 条件是如何工作的?有人可以解释一下吗?
我是 C 的新手

最佳答案

c1 部分是扫描 ei 第二部分的失败尝试,他们本可以重用 c 而不会引入更多错误。

更好的选择:

#include <stdio.h>
int main(void) {
int c, last = 0, ei_count = 0;
while ((c = getchar()) >= 0 && c != '#') {
ei_count += last && c == 'i';
last = c == 'e';
}
printf("ei appeared %d times\n", ei_count);
}

更正错误:

  • e 之后,ei# 都没有被识别。
  • EOF 无限循环/输入错误。

随机事实:

  • main 在右大括号之前有一个隐式的 return 0;
  • getchar() 返回一个 int,因此它可以在失败时返回 -1,在成功时将 unsigned char 转换为 int。始终检查故障。
  • 逻辑和比较运算符始终返回 0 或 1。
  • 0 为逻辑假,其他所有为逻辑真。
  • return 不是函数调用:使用 return 0; 不带括号。

关于c - 编写一个程序,读取输入 # 并报告序列 ei 出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24508825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com