我希望我的程序找到任何字符的所有立即重复。例如,如果输入是“APAMMANNA”,我希望程序计算立即重复字符出现的次数。所以对于给定的例子,输出应该是“2”。
这段代码是我写的
#include<stdio.h>
int main()
{
char input[51];
int n, i, count=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%c",&input[i]);
}
for(i=0;i<n;i++)
{
if(input[i]==input[i+1]);
count++;
}
printf("%d\n",count);
}
但是我这个程序似乎不工作,谁能告诉我为什么这个程序不能比较以下条件?
if(input[i]==input[i+1]);
那么,谁能帮我找出我哪里出错了?
最佳答案
问题在这里
if(input[i]==input[i+1]);
count++;
这总是会增加计数
。这是因为那个分号。相反,它应该是:
if(input[i]==input[i+1])
count++;
它不起作用的原因是因为有了分号,分号(什么都不做)是 if
语句的整个主体。这就是为什么计数总是增加的原因,因为 count++;
不是 if
的一部分。
For example if input is "APAMMANNA"
实际上,它需要像“10 APAMMANNA”这样的东西,因为你首先要读入 n
,即便如此,它也有点难看,因为数字后面的空格将成为你的一部分字符串。
关于c - 我怎样才能找到任何字符的立即重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53653588/