正文

用指向指针的指针的方法对n个整数排序并输出2006-04-14 15:14:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/clever101/12393.html

分享到:

一道编程题目:用指向指针的指针的方法对n个整数排序并输出。要求将排序单独写成一个函数。整数和n在主函数中输入,最后在主函数中输出。我对该题的理解是:用交换地址的办法来达到交换元素的目的。   #include <stdio.h> #include <malloc.h>   void Sort(int **p, int times) {     int *temp; int i=0; int j=0;     for (i=0; i<times-1; i++)     {         for (j=i+1; j<times; j++)         {    /*当某元素大于它后面的元素,交换它们的地址*/            if (**(p+i) > **(p+j))             {                 temp = *(p+i);                 *(p+i) = *(p+j);                 *(p+j) = temp;             }         }     } } int main(void) {     int  i=0; int times=0;     int **p = (int**)malloc(20*sizeof(int*));//开辟20个int*空间     printf("input times to opt:\n");     scanf("%d",&times);    for (i=0; i<20; i++)     {         *(p+i)=(int*)malloc(sizeof(int)); //为每个int*指向一个int数据    }     for (i=0 ; i<times; i++)     {  printf("Please input a figure:\n");         scanf("%d", *(p+i));     }     printf("\nthe result is :\n");     Sort(p, times);     for (i=0; i<times; i++)     {         printf("%d  ",**(p+i));     }  for (i=0; i<20; i++)     {        free(*(p+i));    *(p+i) = NULL;    }  free(p); p = NULL;printf("\n");return 0;} }  

阅读(7301) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册