| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1801 人关注过本帖
标题:下面是将字符串中重复的数字删除的代码,求大神看看有问题吗?
只看楼主 加入收藏
QwertySun
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2016-11-21
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:6 
下面是将字符串中重复的数字删除的代码,求大神看看有问题吗?
for(i = 0; i < n - 1; i++)
        {
            for(j = i + 1; j < n; j++)
            {
                if(a[i] == a[j])
                {
                    for(k = i; k < n; k++)
                        a[k] = a[k + 1];
                    j--;
                    n--;
                }
            }
        }
搜索更多相关主题的帖子: 字符串 
2016-12-07 18:20
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:8 
如果字符串全是数字,没啥问题,如果还有别的字符,会把重复的字符删掉。
2016-12-09 10:12
QwertySun
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2016-11-21
收藏
得分:0 
回复 2楼 grmmylbs
对的!题目就是要将重复的只留一个,然后按大小输出。然后你就帮我看看我的哪有问题,好吗?
#include<stdio.h>

int main()
{
    int n, i, j, k, temp;
    int a[100];
    while(scanf("%d", &n)==1)
    {
        for(i = 0; i < n; i++)
            scanf(" %d", &a[i]);
        for(i = 0; i < n - 1; i++)
        {
            for(j = i + 1; j < n; j++)
            {
                if(a[i] == a[j])
                {
                    for(k = i; k < n; k++)
                        a[k] = a[k + 1];
                    j--;
                    n--;
                }
            }
        }
        for(i = 0; i < n - 1; i++)
        {
            for(j = i + 1; j < n; j++)
            {
                if(a[i] > a[j])
                {
                    temp = a[i];
                    a[i] = a[j];
                    a[j] = temp;
                }
            }
        }
        for(i = 0; i < n; i++)
        {
            if(i != 0) printf(" ");
            printf("%d", a[i]);
        }
        printf("\n");
    }
    return 0;
}
2016-12-09 22:19
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:12 
回复 3楼 QwertySun
只粗看了一下,没仔细确认,你自己琢磨一下:删掉一个元素之后,i是不是应该递减?
2016-12-11 16:01
QwertySun
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2016-11-21
收藏
得分:0 
回复 4楼 yangfrancis
为什么我加了i--还是不行啊!
2016-12-12 12:49
逍W遥
Rank: 1
等 级:新手上路
帖 子:4
专家分:7
注 册:2016-12-19
收藏
得分:0 
字符串不是%c吗?
2016-12-19 07:00
逍W遥
Rank: 1
等 级:新手上路
帖 子:4
专家分:7
注 册:2016-12-19
收藏
得分:0 
while(scanf("%d", &n)==1)   是不是当n==1是进行循环?
这是我改过的

#include<stdio.h>
int main()
{
    int n, i, j, k, temp;
    int a[100];
//输入数字个数
    scanf("%d",&n);
    //存入数字
        for(i = 0; i < n; i++)
            scanf("%d", &a[i]);
    //排序
        for(i = 0; i < n - 1; i++)
        {
            for(j = i + 1; j < n; j++)
            {
                if(a[i] > a[j])
                {
                    temp = a[i];
                    a[i] = a[j];
                    a[j] = temp;
                }
            }
        }
        
        
       //去重
        for(i = 0; i < n; i++)
        {
            if(i==0)
             {
                printf("%d", a[i]);
            
            }
             else if(a[i] != a[i-1])
                {
                     printf("%d", a[i]);//如果数组元素i和前一个不相等,那么输出i                                                                  
                    
                }
               
            
        }
        
        printf("\n");

        
    return 0;
}
2016-12-19 07:28
快速回复:下面是将字符串中重复的数字删除的代码,求大神看看有问题吗?
数据加载中...
 
   



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

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