首页 > 其他 > 详细

动态内存分配输入整数并对其排序输出

时间:2014-09-14 10:05:56      阅读:259      评论:0      收藏:0      [点我收藏+]
#include<stdio.h>
#include<stdlib.h>

int 
compare_integers(void const *a, void const *b)
{
    register int const *pa = a;
    register int const *pb = b;
    
    return *pa > *pb ? 1 :(*pa < *pb ? -1 : 0);
}

int
main(void)
{
    int *array;
    int n_values;
    int i;
    
    printf("How many values are there?");
    if(scanf("%d", &n_values) != 1 || n_values <=0){
        printf("Illegal number of values.\n");
        exit(EXIT_FAILURE);
    }
    
    array = malloc(n_values * sizeof(int));
    if(array == NULL){
        printf("Can‘t get memory for that many values.\n");
        exit(EXIT_FAILURE);
    }    
    
    for(i=0; i<n_values; i++){
        printf("?");
        if(scanf("%d", array+i) != 1){
            printf("Error reading value #%d\n", i);
            free(array);
            exit(EXIT_FAILURE);
        }
    }
    
    qsort(array, n_values, sizeof(int), compare_integers);
    
    
    for(i=0;i<n_values;i++){
        printf("%d\n", array[i]);
    }
    
    return EXIT_SUCCESS;
}

 

动态内存分配输入整数并对其排序输出

原文:http://www.cnblogs.com/yshyee/p/3970686.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!