我的程序是确定输入中是否有任何字符立即重复。例如
输入::
5
RRRRR
预期输出::
4
R重复4次
但给定的输出为2
我尝试了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=1;i<n;i++)
{
if(input[i]==input[i-1])
count++;
}
printf("%d\n",count);
}
第二次尝试程序
#include<stdio.h>
int main()
{
char a, b;
int n, i, count=0;
scanf("%d",&n);
scanf("%c",&a);
for(i=1;i<n;i++)
{
scanf("%c",&b);
if(a==b)
count++;
else
a=b;
}
printf("%d\n",count);
}
这里是要输入的字符数。那么有人可以帮我找出我要去哪里的错误吗?
答案 0 :(得分:1)
我明白了,每当我们使用scanf并在最后输入时,我们使用“ ENTER” 。但是第二个scanf中的“%c”会将其作为输入 .so在上一个问题中我的程序应该是 第一个程序
#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=1;i<n;i++)
{
if(input[i]==input[i-1])
count++;
}
printf("%d\n",count);
}
第二程序
#include<stdio.h>
int main()
{
char a, b;
int n, i, count=0;
scanf("%d",&n);
scanf(" %c",&a);
for(i=1;i<n;i++)
{
scanf(" %c",&b);
if(a==b)
{
count++;
}
else
a=b;
}
printf("%d\n",count);
}
在所有程序通知中,%c均带有标题空间。