| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5233 人关注过本帖
标题:又来一个问题:任意输入一个一维数组进行排序(注意是输入的数组哦,不是已 ...
只看楼主 加入收藏
月下长相依
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2014-12-18
结帖率:60%
收藏
已结贴  问题点数:10 回复次数:7 
又来一个问题:任意输入一个一维数组进行排序(注意是输入的数组哦,不是已排好的),再向数组中插入一个元素
问了好多人都是用固定数组
搜索更多相关主题的帖子: 元素 
2014-12-26 15:05
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:4 
这难道有问题?不论是已知数组还是用户输入的方法一样

一片落叶掉进了回忆的流年。
2014-12-26 15:38
月下长相依
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2014-12-18
收藏
得分:0 
回复 2楼 诸葛欧阳
任意输入数组的我不会,感觉不一样额。。。
2014-12-26 16:27
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:4 
程序代码:
#include <stdio.h>
#include <stdlib.h>

void prt_arr(int *p, int i) {
    int j;

    for(j = 0; j < i; j++) {
        printf("%d ", *(p + j));
    }
}

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 add_num(int *p, int i) {
    i++;
    p = realloc(p, i * (sizeof(int)));

    if(p != NULL) {
        scanf("%d", p + i - 1);

    } else {
        printf("ERROR REALLOC!\n");
        exit(1);
    }

    return i;
}



int main(void) {
    int i = 0 , num, *parr_num = malloc(1 * sizeof(int));

    if(parr_num != NULL) {
        while(scanf("%d", &num) > 0) {
            *(parr_num + i) = num;
            parr_num = realloc(parr_num, (i + 2) * (sizeof(int)));

            if(parr_num != NULL) {
                i++;

            } else {
                printf("ERROR REALLOC!\n");
                exit(1);
            }
        }

    } else {
        printf("ERROR MALLOC!\n");
        exit(1);
    }

    printf("数组长为: %d\n", i);

    if(i > 0) {
        prt_arr(parr_num, i);
        printf("\n");
        sort_arr(parr_num, i);
        prt_arr(parr_num, i);
        printf("\n");
    }

    fflush(stdin);
    i = add_num(parr_num, i);
    sort_arr(parr_num, i);
    prt_arr(parr_num, i);
    printf("\n");
    free(parr_num);
    return 0;
}

图片附件: 游客没有浏览图片的权限,请 登录注册

Only the Code Tells the Truth             K.I.S.S
2014-12-26 20:06
月下长相依
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2014-12-18
收藏
得分:0 
回复 4楼 longwu9t
感觉不用打印数组长的
2014-12-26 20:11
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
回复 5楼 月下长相依
………………
你的感觉很准

我是为了调程序加了个打印

你觉着碍事就删掉

Only the Code Tells the Truth             K.I.S.S
2014-12-26 20:12
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
C没有那么容易动态调整数组尺寸

授人以渔,不授人以鱼。
2014-12-26 20:24
月下长相依
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2014-12-18
收藏
得分:0 
回复 6楼 longwu9t
哈哈。原来如此
2014-12-26 21:19
快速回复:又来一个问题:任意输入一个一维数组进行排序(注意是输入的数组哦,不 ...
数据加载中...
 
   



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

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