标题:死循环了,麻烦看一下题目是输入字符串删除相同字符
只看楼主
YvesLZH
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-5-9
结帖率:0
已结贴  问题点数:10 回复次数:3 
死循环了,麻烦看一下题目是输入字符串删除相同字符
程序代码:
#include<stdio.h>
#define changdu 80
void main()
{
    char ch[changdu];
    int num,b,c,e;
    gets(ch);
    lddp: e=1;
    for (num=0;num<(changdu);num++)
    {    
        for (b=e;b<(changdu);b++)
        {
            if (ch[b]=='\0')
                goto loop;
            else
                if (ch[num]==ch[b])
                    {
                        for(c=b;c<(changdu-1);c++)
                            ch[c]=ch[c+1];
                        goto lddp;
                    }    
        }
        loop:e=e+1;    
    }
    puts(ch);
}
搜索更多相关主题的帖子: 死循环 删除 相同 num for 
2018-05-10 00:11
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:620
专家分:3020
注 册:2011-4-22
得分:4 
第一,删除字符以后字符串长度要调整,或者末尾置0
第二,goto现代编程尽量避免。
2018-05-10 00:22
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:4 
#include<stdio.h>
#define changdu 80
void main()
{
    unsigned char ch[changdu], c[256]={0};
    int num,b;
    for (num=0; num<changdu-1&&(ch[num]=getchar())!='\n'; num++) NULL;
    ch[num] = '\0';
    num = 0;
    for (b=0; ch[b]; ++b)
    {
        if (!c[ch[b]])
        {
            ch[num] = ch[b];
            c[ch[b]] = 1;
            ++num;
        }
    }
    ch[num] = '\0';
    puts(ch);
}
2018-05-10 05:52
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:4 
2018-05-10 13:45



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




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

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