您的位置:首页 > 其它

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

2014-09-14 09:37 225 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐