C语言编程:用指向指针的指针的方法对n个整数排序并输出。

要求将排序单独写成一个函数。n个整数在主函数中输入,最后在主函数中输出

用指向指针的指针的方法对n个整数排序并输出的具体编程步骤如下:

1、编写头函数:#include <stdio.h>。

2、编写条件函数:

void sort(int **p,int n)

{

int i,j,temp;

for(i=0;i<n-1;i++)

for(j=0;j<n-1-i;j++)

{

if(*p[j]>*p[j+1])//或者是*(*(p+j))>*(*(p+j+1))

{

temp=*p[j];

*p[j]=*p[j+1];

*p[j+1]=temp;

}

}

}

3、最后编写主函数:

int main()

{

void sort(int **,int );

int i,n,data[20],**p,*pstr[20];

scanf("%d",&n);

for(i=0;i<n;i++)

pstr[i]=&data[i];

for(i=0;i<n;i++)

scanf("%d",pstr[i]);

p=pstr;

sort(p,n);

for(i=0;i<n;i++)

printf("%d ",*pstr[i]);

return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-12
#include <stdio.h>  
#include <stdlib.h>  
#define MAXSIZE 100  
void swap(int*, int*);  
void sort(int**, int);  
int main(void)  
{  
    int i;  
    int n;  
    //整形数组  
    int array[MAXSIZE];  
    //指针数组  
    int *pArray[MAXSIZE];  
    printf("please enter n:\n");  
    scanf("%d", &n);  
    for (i = 0; i < n; ++i)  
    {  
        scanf("%d", &array[i]);  
        pArray[i] = &array[i];  
    }  
    sort(pArray, n);  
    for (i = 0; i < n; ++i)  
    {  
        printf("%d\n", *pArray[i]);  
    }  
    return 0;  
}  
//交换  
void swap(int *a, int *b)  
{  
    int temp = *a;  
    *a = *b;  
    *b = temp;  
}  
//排序  
void sort(int **array, int n)  
{  
    int *p;  
    int *q;  
    for (p = *array; p < *array + n; ++p)  
    {  
        for (q = p + 1; q < *array + n; ++q)  
        {  
            if (*p > *q)  
            {  
                swap(p, q);  
            }  
        }  
    }  
}

本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网