标题:C語言 還有其他方式 做出 刪除重複?
取消只看楼主
adssc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:32
注 册:2018-4-20
结帖率:100%
已结贴  问题点数:20 回复次数:12 
C語言 還有其他方式 做出 刪除重複?
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
main()
{
char A[100];
int i=0,j;
printf("input:");
gets(A);
while(i<strlen(A))
{
j=i+1;
while(j<strlen(A))
{
if(A[j]==A[i])
{
A[j]='\0';
strcat(A,A+j+1);
}
else
j++;
}
i++;
}
puts(A);
system("pause");
}
雖然跑出來是對的 有沒有其他簡單方式做出來???
搜索更多相关主题的帖子: 其他 include while strlen strcat 
2018-04-20 19:57
adssc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:32
注 册:2018-4-20
得分:0 
回复 2楼 李晨经纪人
太深奧  我看不懂
2018-04-21 10:17
adssc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:32
注 册:2018-4-20
得分:0 
感謝各位大大的幫忙,但小弟沒學太多函數,所以只會基本,有些你們用的函數有些陌生,我是希望能別用函數,能做出來嗎? 謝謝各位
2018-04-21 16:52
adssc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:32
注 册:2018-4-20
得分:0 
回复 10楼 李晨经纪人
迴圈裡面的精華不太懂,能請大大勞心解釋一下  
2018-04-21 19:21
adssc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:32
注 册:2018-4-20
得分:0 
回复 10楼 李晨经纪人
#include<stdio.h>
#include<stdlib.h>
int main()
{
    char A[100];
    int B[100]={0},i,j;
    printf("input:");
    gets(A);
    i=0;
    j=0;
    while(i<100)
    {
        if(A[i]=='\0')
            break;
        if(B[A[i]]==0)
        {
            B[(A[i])]++;
            A[j++]=A[i];
        }
        i++;
    }
    A[j]='\0';
    puts(A);
    system("pause");
    return 0;
}
我把迴圈改成while,但第2個條件判斷不太懂
         if(B[A[i]]==0)
        {
            B[(A[i])]++;
            A[j++]=A[i];
        }
大大能寫的詳細一點,感覺有點簡化了,哈哈!! 麻煩大大
2018-04-21 19:31
adssc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:32
注 册:2018-4-20
得分:0 
回复 13楼 李晨经纪人
謝謝大大,有點懂了,我稍微改了一些如下
#include<stdio.h>
#include<stdlib.h>
int main()
{
    char A[100];
    int B[100]={0},i,j;
    printf("input:");
    gets(A);
    i=0;
    j=0;
    while(A[i]!='\0')
    {
        if(A[i]=='\0')
            break;
        if(B[A[i]]==0)
        {
            B[(A[i])]++;
            A[j]=A[i];
            j++;
        }
        i++;
    }
    A[j]='\0';
    puts(A);
    system("pause");
    return 0;
}
這段條件判斷
          if(B[A[i]]==0)
          {
            B[(A[i])]++;
第一次看到這樣寫,可以勞煩大大,拆解還是只能這樣寫呢?  不好意思,一直麻煩你,不厭其煩教導,謝謝
2018-04-21 21:10
adssc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:32
注 册:2018-4-20
得分:0 
回复 15楼 李晨经纪人
這段條件判斷
          if(B[A[i]]==0)
          {
            B[(A[i])]++;
可以如何拆解還是只能這樣寫呢...?
2018-04-21 22:05
adssc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:32
注 册:2018-4-20
得分:0 
回复 19楼 xzlxzlxzl
感謝大大提供,小弟的思路不好,目前功力無法體會= = 哈哈
2018-04-21 22:51
adssc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:32
注 册:2018-4-20
得分:0 
回复 19楼 xzlxzlxzl
我目前想搞清楚這段條件判斷
          if(B[A[i]]==0)
          {
            B[(A[i])]++;
語法如何拆解還是只能這樣寫呢...?
2018-04-21 22:53
adssc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:32
注 册:2018-4-20
得分:0 
回复 23楼 九转星河
所以大大,這段條件判斷 if (B[A[i]]==0)
                      {
                         B[A[i]]=1;

B[A[i]]==0 和  B[A[i]]=1; 能有其他的寫法嗎?還是只能這樣?  勞煩大大
2018-04-22 12:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-486229-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.126730 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved