为什么检测出来只有90分,是哪里不满足条件吗?


#include
#include
main()
{  char a[302];
   char b[302];
   char c[302];
   char t[302];
   int i,k,u,n;  //如果检测到一个字符有重复出现两次以上删除最近的一个; 
   int s,d,j;
   d=0;
   gets(a);// 找到这个字符要储存起来 
   n=strlen(a);
   for(i=0;ifor(i=0;i0;
         s=i;
     for(s;sif(a[i]==b[s]) 
          u++;
         }
        if(u<2)
         { c[d]=a[i];
           d++; 
         }
    } 
 printf("%s",c);
}

img

i从1开遍历,用i+1跟前面的进行比较,只保留最后1个的话,逆序遍历比较好

#include <stdio.h>
int main()
{
    char s[301]={0};
    char *p = s,*k;
    gets(s);
    int n = strlen(s);
    p += n-1;
    char *q = p-1;
    while(q>=s)
    {
        for(k = p;k<=s+n-1;k++)
            if(*k == *q)
                break;
        if(k>=s+n)
            *(--p) = *q;
        q--;
    }
    printf("%s\n",p);
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632