| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 600 人关注过本帖
标题:如何写一子函数 删除一维数组中相同的元素
只看楼主 加入收藏
SHEEP三三
Rank: 1
等 级:新手上路
帖 子:14
专家分:7
注 册:2014-12-26
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:3 
如何写一子函数 删除一维数组中相同的元素
编写一个程序 1:删除一维数组中所有相同的元素,使之只剩一个
2:数组中的数按照从小到大排列
3:函数返回值为删除相同的数后数组中数据的个数
还有一个问题,我一直不懂返回值是干嘛的?
搜索更多相关主题的帖子: 如何 元素 
2014-12-26 15:54
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:20 
程序代码:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

#define LEN 26

struct foobar {
    int n;
    int c;
};
int new_arr[LEN];

void sort_arr(int *p, int i) {
    int j, k, t = 0;
    i--;

    for(j = 0; j < i; j++) {
        for(k = 0; k < (i - j); k++) {
            if(*(p + k) > *(p + k + 1)) {
                t =  *(p + k);
                *(p + k) = *(p + k + 1);
                *(p + k + 1) = t;
            }
        }
    }
}


int foo(struct foobar *cnt, int *old_arr) {
    int i, j, k=0;

    for(i = 1; i < LEN; i++) {
        for(j = 0; j < i; j++) {
            if(cnt[j].n == old_arr[i]) {
                cnt[j].c++;
                break;
            }
        }

        cnt[j].n = old_arr[i];
        cnt[j].c = 1;
    }

    for(i = 0; i < LEN; i++) {
        if(cnt[i].c != 0) {
            new_arr[k] = cnt[i].n;
            k++;
        }
    }

    sort_arr(new_arr, k);
    return k;
}

int main(void) {
    int old_arr[LEN]={0};
    struct foobar cnt[LEN];
    int i = 0, len = 0;
    srand((unsigned int)time(NULL));
    
    printf("\nOLD_ARR_LEN = %d\n", LEN);
    for(i = 0; i < LEN; i++) {
        old_arr[i] = 1 + (int)(15.0 * rand() / (RAND_MAX + 1.0));
        printf("%d ", old_arr[i]);
        cnt[i].c = 0;
    }

    printf("\n");
    cnt[0].n = old_arr[0];
    cnt[0].c = 1;
    len = foo(cnt, old_arr);
    printf("\nNEW_ARR_LEN = %d\n", len);

    for(i = 0; i < len; i++) {
        printf("%d ", new_arr[i]);
    }

    printf("\n");
    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2014-12-26 22:22
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

Only the Code Tells the Truth             K.I.S.S
2014-12-26 22:25
SHEEP三三
Rank: 1
等 级:新手上路
帖 子:14
专家分:7
注 册:2014-12-26
收藏
得分:0 
十分感谢,但是我初学,好多看不懂。我先自己琢磨,有不懂再问,再次感谢你~
2014-12-27 10:29
快速回复:如何写一子函数 删除一维数组中相同的元素
数据加载中...
 
   



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

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