读书人

一道简单的c题目。求走过路过的大神帮

发布时间: 2013-07-08 14:13:00 作者: rapoo

一道简单的c题目。求走过路过的大神帮忙看一下我写的哪里错了。
题目是这样的:
Description
小兰把打印机的密码又忘了,于是哭着脸去找杨老师,杨老师为了让她长记性,决定考考她。
首先给出一个字符串,通过杨老师的提示,A操作和B操作,把它变回正确的密码,数据保证最后密码长度大于0。
A d 3 表示把字符d插入第3个位置(若大于字符串长度了就放在末尾)
B e 表示把字符e删去
她发现这个问题过于复杂,于是请来了大牛的你来帮忙,请你告诉她正确密码是什么吧。

Input
第一行: 一个字符串,字符串长度小于100
后面每行是A,B操作,最后以END结束输入

Output
输出正确的密码


Sample Input

zxt##88
A 8 8
B #
END


Sample Output

zxt888




我的代码是这样的:
#include<stdio.h>
#include<string.h>
char code[200];
int size;
void a(char x,int y)
{
int i;
char t1,t2;
size++;
t1=x;
for(i=y-1;i<=size;i++)
{
t2=code[i];
code[i]=t1;
t1=t2;
}
}

void b(char x)
{
int i,j,k;
for(i=0;i<size;i++)
{
if(code[i]==x)
{
for(j=i+1,k=i;j<size;j++,k++)
code[k]=code[j];
size--;
i--;
}

}
}
int main()
{
char c,a_c;
int a_z,i;
scanf("%s",code);
getchar();
size=strlen(code);
while(1)
{
c=getchar();
getchar();
if(c=='A')
{
scanf("%c%d",&a_c,&a_z);
getchar();
a(a_c,a_z);
}
else if (c=='B')
{
scanf("%c",&a_c);
getchar();
b(a_c);
}
else
{
for(i=0;i<size;i++)
printf("%c",code[i]);
printf("\n");
break;
}
}
return 0;
}
C
[解决办法]
A d 3 表示把字符d插入第3个位置(若大于字符串长度了就放在末尾)
括号里的字你没处理啊。

读书人网 >C++

热点推荐