C语言编程:用指向指针的指针的方法对n个整数排序并输出。
2个回答
展开全部
用指向指针的指针的方法对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;
}
展开全部
#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);
}
}
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询