在 C 中打印相同 characters.RLE 的正确数量的问题
Problem with printing the correct number of same characters.RLE in C
我无法在 RLE 程序中打印出正确的字符数。我已经让它与数组一起工作,我正在寻找一个不同的 approach.Here 是代码:
#include <stdio.h>
int main ()
{
char elem,elem1;
int n=1;
while ((elem=getchar())!=EOF && elem!='\n'){
if ((elem1=getchar())==elem){
n++;
}
printf("%d%c",n,elem);
n=1;
}
printf("\n");
return 0;
}
例如,当我输入 --> ttyyy 时,输出是 2t2y1y。已经尝试添加 else 语句,但它从未真正进入 statement.Output should have been 2t3y.
提前致谢。
试试这个:
基本上,我们把所有的字符都算进去,只要和之前的一样。当字符改变时,我们打印 char 和旧计数器并将我们的计数器设置回 1。
old_elem
保留最后一个字符
elem
持有当前字符
(我们将 old_elem 设置为某个初始值,以便我们可以检查它是否是遇到的第一个字符)
#include <stdio.h>
int main () {
char elem;
char old_elem = '$';
int n=1;
while ((elem=getchar())!=EOF && elem!='\n'){
if (elem==old_elem) {
n++;
}
else {
if ( old_elem!='$') { printf("%d%c",n,elem); }
n=1;
}
old_elem = elem;
}
printf("%d%c\n",n,old_elem);
return 0;
}
示例输入:
ttyyy
输出:
2t3y
我无法在 RLE 程序中打印出正确的字符数。我已经让它与数组一起工作,我正在寻找一个不同的 approach.Here 是代码:
#include <stdio.h>
int main ()
{
char elem,elem1;
int n=1;
while ((elem=getchar())!=EOF && elem!='\n'){
if ((elem1=getchar())==elem){
n++;
}
printf("%d%c",n,elem);
n=1;
}
printf("\n");
return 0;
}
例如,当我输入 --> ttyyy 时,输出是 2t2y1y。已经尝试添加 else 语句,但它从未真正进入 statement.Output should have been 2t3y.
提前致谢。
试试这个:
基本上,我们把所有的字符都算进去,只要和之前的一样。当字符改变时,我们打印 char 和旧计数器并将我们的计数器设置回 1。
old_elem
保留最后一个字符elem
持有当前字符
(我们将 old_elem 设置为某个初始值,以便我们可以检查它是否是遇到的第一个字符)
#include <stdio.h>
int main () {
char elem;
char old_elem = '$';
int n=1;
while ((elem=getchar())!=EOF && elem!='\n'){
if (elem==old_elem) {
n++;
}
else {
if ( old_elem!='$') { printf("%d%c",n,elem); }
n=1;
}
old_elem = elem;
}
printf("%d%c\n",n,old_elem);
return 0;
}
示例输入:
ttyyy
输出:
2t3y