我正在做的事情是我无法弄清楚如果至少出现过两次字符,我该如何计数。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int c;
unsigned long int zbrojz=0;
while((c = getchar()) != '\n')
{
if((c == 'Z' >= 2) || (c == 'z' >= 2)){
zbrojz++;
}
}
printf("Z ili z je se pojavilo: %lu puta", zbrojz);
return 0;
}
答案 0 :(得分:2)
如果我猜对了程序应该做什么(显示输入中出现的“ Z”或“ z”的数目),则条件是错误的。
应该是:
while ((c = getchar()) != '\n')
{
if ((c == 'Z') || (c == 'z')) { /// <<< changes on this line
zbrojz++;
}
}
输入:
abcZzdeZ
输出:
Z ili z je se pojavilo: 3 puta
答案 1 :(得分:1)
由于无法在循环中预测程序将接收多少个'z'/'Z'字符,因此需要对所有出现的'z'或'Z'进行计数,然后在输出任何内容之前测试计数:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int c;
unsigned long int zbrojz=0;
while((c = getchar()) != '\n')
if(c == 'Z' || c == 'z')
zbrojz++;
if(zbrojz >= 2)
printf("Z ili z je se pojavilo: %lu puta\n", zbrojz);
return 0;
}