首页 > 代码库 > 动态内存分配输入整数并对其排序输出
动态内存分配输入整数并对其排序输出
#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);}intmain(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;}
动态内存分配输入整数并对其排序输出
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。