| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 960 人关注过本帖
标题:求大神帮忙,在黄岛的咱一起出去喝点.....
只看楼主 加入收藏
tang12
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2016-12-16
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:8 
求大神帮忙,在黄岛的咱一起出去喝点.....
我现在就是想解决一个问题,例如一到八这八个数乱序保存在一个数组里,我用一个规律将它们进行改变,结果改变完之后的数组里,有的数重复,比如变完之后是53845324,我需要处理5384--2-   就是出现重复的就是空,然后把没排到的167按顺序写在上面,改成53841627,求程序,自己解决不了了!!!
搜索更多相关主题的帖子: 黄岛 
2016-12-16 09:16
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:10 
题主石油的?我一同学在那里,上个星期还来看我了!
这题很简单,就用最近流行的查表法吧,首先建立一个0-9共10个元素的数组,然后扫描输入的数字,用输入的数字对对应位置的数++,再扫从1-8描数组,停在元素为0的位置,用元素为0 的位置取代元素大于1的数即可。
方法说了,代码自己组织吧。
2016-12-16 10:18
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:5 
你是想将 53845324 变为 53841627
还是想将 "53845324" 变为 "53841627"?

这个输入的数据保证是8位吗?
2016-12-16 10:39
艾瑞克
Rank: 3Rank: 3
来 自:贵州
等 级:论坛游侠
帖 子:100
专家分:105
注 册:2016-11-8
收藏
得分:5 
好吧我不会
2016-12-18 12:03
tang12
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2016-12-16
收藏
得分:0 
回复 2楼 xzlxzlxzl
对的,就是这个意思的!
2016-12-19 09:01
tang12
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2016-12-16
收藏
得分:0 
回复 3楼 rjsp
就是这个意思呢!我用的最简单的办法,可是为什么不能运行呢!!!
2016-12-19 09:01
tang12
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2016-12-16
收藏
得分:0 
#include "stdio.h"
#include "time.h"
#include "stdlib.h"
#define pailiejuxingnum 8
int i,j,k,l,n,p,r;
int m=0,q=0;
int a[pailiejuxingnum+1];
int b[pailiejuxingnum];
main()
{
    srand(time(0));
    for(i=1;i<=pailiejuxingnum;i++)
    {
        a[i]=rand()%pailiejuxingnum+1;
        printf("处理前数据为:%d\n",a[i]);   
    }
    for(j=2;j<=pailiejuxingnum;j++)
    {
        for(k=1;k<j;k++)
        {
            if(a[j]!=a[k])
            continue;
            else
            a[j]=0;
        }
    }
    for(l=1;l<=pailiejuxingnum;l++)
    {
        int m=0;
        if(a[l]=0)
        {
            m+=1;
            b[m]=l;
        }
        return m;
    }
    for(n=1;n<=pailiejuxingnum;n++)
    {
        for(p=1;p<=pailiejuxingnum;p++)
        {
            if(a[p]!=n&&n<pailiejuxingnum)
            continue;
            else if(a[p]!=n&&p==pailiejuxingnum)
            {
                q=q+1;
                a[b[q]]=n;
            }
            else
            break;
        }
    }
    for(r=1;r<=pailiejuxingnum;r++)
    {
        printf("处理后的数据为:%d\n",a[r]);
    }
}
帮忙看看有什么语法上的问题,为什么执行只运行第一个for循环
2016-12-19 09:02
tang12
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2016-12-16
收藏
得分:0 
回复 2楼 xzlxzlxzl
我在青岛理工大学,学编程刚刚入门吧,就是作为一个处理问题的工具,不精通,所以有好多地方不懂
2016-12-19 09:06
tang12
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2016-12-16
收藏
得分:0 
已解决,很开心,有需要的拿走哦!!!也谢谢回复的朋友!
#include "stdio.h"
#include "time.h"
#include "stdlib.h"
#define pailiejuxingnum 8
int i,j,k,l,n,p,r;
int m=0,q=0;
int a[pailiejuxingnum+1];
int b[pailiejuxingnum];
main()
{
    srand(time(0));
    printf("处理前数据为:\n");
    for(i=1;i<=pailiejuxingnum;i++)
    {
        a[i]=rand()%pailiejuxingnum+1;   
        printf("%5d",a[i]);   
    }
    for(j=2;j<=pailiejuxingnum;j++)
    {
        for(k=1;k<j;k++)
        {
            if(a[j]!=a[k])
            continue;
            else
            a[j]=0;
        }
    }
    for(l=1;l<=pailiejuxingnum;l++)
    {
        if(a[l]==0)
        {
            m+=1;
            b[m]=l;
        }
    }
    for(n=1;n<=pailiejuxingnum;n++)
    {
        for(p=1;p<=pailiejuxingnum;p++)
        {
            if(a[p]!=n&&p<pailiejuxingnum)
            continue;
            else if(a[p]!=n&&p==pailiejuxingnum)
            {
                q=q+1;
                a[b[q]]=n;
            }
            else
            break;
        }
    }
    printf("\n处理后的数据为:\n");
    for(r=1;r<=pailiejuxingnum;r++)
    {
        printf("%5d",a[r]);
    }
}
2016-12-19 09:18
快速回复:求大神帮忙,在黄岛的咱一起出去喝点.....
数据加载中...
 
   



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

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