【发布时间】:2022-12-11 10:46:28
【问题描述】:
以前,该程序计算字符串中字母和单词的总数。现在我试图让它确定有多少个单词有偶数个字母。准确的说是一个字一个字的。告诉我如何完成。
program test;
var
c : char;
i : integer;
numOfChar : integer;
rem : integer;
begin
i := 1;
numOfChar := 0;
rem := 0;
c := ' ';
writeln('Enter your string');
read(c);
while (c <> #13) and (c <> #10) do
begin
if c <> ' ' then inc(numOfChar)
else inc(i);
rem := numOfChar mod 2;
read(c);
end;
writeln('count of words: ', i);
writeln('count of chars: ', numOfChar);
writeln('rem: ', rem)
end.
这是我没有完成的代码。
【问题讨论】:
-
使用“not odd()”来测试一个数是否为偶数。
-
在我看来,您的代码中存在逻辑错误。输入五个空格和<enter>,会显示输入了五个字!单独一个空间是不可靠的。引入一个变量,比如
inWord: boolean并将其初始化为false。当用户输入 char <> 空间时,将其设置为true并增加 char 计数器。当用户输入 char = space 和inWord = true时,将其设置为false并递增words。此时您还可以检查字符计数器是否为偶数。