【发布时间】:2019-05-08 06:41:47
【问题描述】:
我希望我的程序找到任何字符的所有立即重复。例如,如果输入是“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);
}
但是我这个程序似乎不起作用,谁能告诉我为什么这个程序不能比较以下条件?
如果(输入[i]==输入[i+1]);
那么,谁能帮我找出我哪里出错了?
【问题讨论】:
-
“ABABBABBBABBBBA”的输出应该是什么?那么“ABBBAAAA”呢?
-
对于初学者,请添加
printf("%s\n", input);以查看实际内容。 -
当 i==(n-1) 并且您尚未定义最后一个条目时,您将使用“i+1”结束字符串的末尾。此外,您不想要“;”在“如果”之后!
-
@Broman 他们无法打印出
input,因为它不是NUL终止的字符串 -
@ChrisTurner 好吧,只需将 print 语句修改为有限长度。总之就是基本调试。
标签: c if-statement char