一道学校的编程题目,找不到出错的地方,求解了
											
	
		
			
		
	
程序代码:#include<stdio.h>
#include<string.h>
#define FOR(i,n) for(i=0;i<n;i++)
int main()
{
    char str [105];
    int str2[105];//标记函数
    memset(str,0,sizeof(str));
    memset(str2,0,sizeof(str2));
    while(scanf("%s",str)!=EOF)
    {
        int n=strlen(str);
        int i,acount=0;
        FOR(i,n)
        {
            if(str[i]=='A'&str2[i]==0)//先找到A,再从前面或者后面查CM的字符;
            {
                if(i>=2&&str[i-1]=='C'&&str2[i-1]==0&&str[i-2]=='M'&&str2[i-2]==0)
                    acount+=1,str2[i]=str2[i-1]=str2[i-2]=1;
                else if(str[i+1]=='C'&&str2[i+1]==0&&str[i+2]=='M'&&str2[i+2]==0)
                    acount+=1,str2[i]=str2[i+1]=str2[i+2]=1,i+=2;
            }
        }
        if(3*acount!=n)//剩余元素判断
        {
            for(i=0; i+1<n; i++)
            {
                if(str2[i]==0&&str2[i+1]==0&&str[i+1]!=str[i])
                {
                    acount+=1;
                    break;
                }
            }
        }
        printf("%d\n",acount);
        memset(str,0,sizeof(str));
        memset(str2,0,sizeof(str2));
    }
    return 0;
}实在找不出错在哪里,可以指出我的逻辑错误或者我少考虑哪一种情况呢?



											
	    

	


~