c - 立即重复字符查找程序
问题描述
我的程序是找出输入中是否有任何字符立即重复。例如
输入::
5
RRRR
预期输出::
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);
}
这里 n 是要输入的字符数。所以谁能帮我找出我哪里出错了?
解决方案
我明白了,每当我们使用 scanf 并最后输入时,我们都会使用"ENTER"。但是第二个scanf中的“%c”将其作为输入。所以在上面的问题中我的程序应该是 第一个程序
#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 都带有标题空间。
推荐阅读
- perl - Perl + Curses:期望来自 getchar() 的 UTF-8 编码的多字节字符,但没有得到任何
- reactjs - 带有 typescript 和模块 css 的 React 库
- android - Android Xamarin Forms UITest 无法单击 DisplayAlert 按钮
- game-physics - 按度数将四元数 1 和四元数 2 分开?
- excel - 同时打开多个PDF VBA excel
- kotlin - 在 LibGdx (Kotlin) 中设置 JUnit、Mockito
- ios - Flutter:IOS 到 IOS 广播信标不起作用
- c - 链接错误。也许订购有问题?
- ruby-on-rails - 在加载时通过控制器渲染远程部分
- python - 如何缩短此替换密码?