读书人

发现一个有关问题。希望个告诉解答啊

发布时间: 2012-02-24 16:30:38 作者: rapoo

发现一个问题。。希望个告诉解答啊。
我写了一段RLE的代码。。功能就是。。输入一段字符串。。。在这些字符串中凡是重复次数超过3的就用N¥T其中N表示重复次数。¥表示控制符代表这里是重复了的。T表示被重复的字符。其他的都直接输出。

代码如下。
#include <stdio.h>
#include <string.h>
void main()
{
char code[100];
int repcount=0,i,j ;
printf( "please input the code:\n ");
scanf( "%100s ",code);
puts(code);
for(i=0;code[i]!= '\0 ';i++)
{
if(code[i]!=code[i+1]&&repcount <1)
printf( "%c ",&code[i]);
else
{
if(code[i]==code[i+1])
repcount++;
else
{
if(repcount> =4)
{
printf( "%d$%c ",&repcount,&code[i]);
repcount=0 ;
}
else
{
for(j=0;j <repcount;j++)
printf( "%c ",&code[i]);
repcount=0 ;
}
}

}
}
getch();
}

编译后。。运行。。得到的结果都是乱码。。

我直接用FOR控制。。把数组code 中的每个元素直接输出。发现也是乱码。。这就说明我用PRINTF 输出是有问题的。。而我用puts(code)却是可以正常输出的。。。有人告诉我是什么回事么。。

另外我要写一个 VFW(VIDEO FOR WINDOWS)下的视频显示程序。。我这里有参考代码。。但是我不知道在C中使用。。有没有人告诉我一下。在C中怎么样用API 新手,没有WINDOWS下编程经验。。望各位前辈指点一二。



[解决办法]
把 printf 参数中的 取地址 符号 & 去掉
[解决办法]
好像逻辑也有点问题, 修改了一下:
当重复超过3次(不包括3次),
输出 重复性 结果:

#include <stdio.h>
#include <stdlib.h>

int main()
{
char code[100];
int repcount=0,i,j ;
printf( "please input the code:\n ");
scanf( "%100s ",code);
puts(code);
for(i=0;code[i]!= '\0 ';i++)
{
if(code[i]!=code[i+1]&&repcount <1)
printf( "%c\n ",code[i]);
else
{
if(code[i]==code[i+1])
repcount++;
else
{
if(repcount> =3)
{
printf( "%d$%c\n ",repcount+1,code[i]);
repcount=0 ;
}
else
{
for(j=0;j <=repcount;j++)
printf( "%c ",code[i]);
printf( "\n ");
repcount=0 ;
}
}

}
}


system( "PAUSE ");
return 0;
}

读书人网 >C语言

热点推荐