注册 登录
编程论坛 C语言论坛

请看一下代码有什么问题

komorebi0110 发布于 2019-12-27 01:46, 959 次点击
考试题,现在权限关闭了,大概意思就是说输入只含有A、B的字符串,输出的A超过1个就要删掉
比如AAABA 就要输出ABA
AAAAAABAAA 就要输出ABA
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
    char a[100];
    scanf("%s",a);
    for(int i=0;i<strlen(a);i++)
    {
        if(a[i]=='A'&&a[i+1]=='A')
        {
            strcpy(a+i,a+i+1);
            i--;
        }
    }
    printf("%s",a);
    return 0;
}
我只过了7/10个测试点 请问这样可以看出我的问题吗

2 回复
#2
rjsp2019-12-27 09:54
你不贴题目,别人怎么知道你的代码是否符合题意呀?

char a[100]; ------ 是不是正确,要看题意
strcpy(a+i,a+i+1); ------ 因为存在重叠区域,所以行为未定义


#3
komorebi01102019-12-27 11:13
回复 2楼 rjsp
题目被关闭了 现在没有权限查看 我可能漏掉什么点了 所以转述题意的时候肯定有问题555 谢谢你
1