扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
#includestdio.h
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、重庆小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了洪湖免费建站欢迎大家使用!
int main()
{ void sort(int array[],int n);
int a[100],n,i;
scanf("%d",n);
for(i=0; in; i++)
scanf("%d",a[i]);
sort(a,n);
printf("the sorted array:\n");
for(i=0; in; i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
void sort(int a[],int n)
{ int i,j,k,t;
for(i=0; in-1; i++)
{ k=i;
for(j=i+1; jn; j++)
if(a[j]a[k])
k=j;
t=a[k];
a[k]=a[i];
a[i]=t;
}
}
用指向指针的指针的方法对n个整数排序并输出的具体编程步骤如下:
1、编写头函数:#include stdio.h。
2、编写条件函数:
void sort(int **p,int n)
{
int i,j,temp;
for(i=0;in-1;i++)
for(j=0;jn-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;in;i++)
pstr[i]=data[i];
for(i=0;in;i++)
scanf("%d",pstr[i]);
p=pstr;
sort(p,n);
for(i=0;in;i++)
printf("%d ",*pstr[i]);
return 0;
}
排序有以下几种:
冒泡法。
选择法。
快速法。
插入法。
shell法。
以下是冒泡法和选择法的例子:
#include"stdio.h"
#define N 10
void sort(int a[],int method)
{
int i,k,t,j;
switch(method)
{
case 1:
for(i=0;iN;i++)
{
for(j=0;jN;j++)
{
if(a[j]a[i])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
break;
case 2:
for(i=0;iN;i++)
{
k=i;
for(j=i+1;jN+1;j++)
if(a[j]a[k])
k=j;
t=a[k];
a[k]=a[i];
a[i]=t;
}
break;
default: break;
}
}
void main()
{
int a[N]={16,5,8,12,1,17,3,6,10,2};
int i,method;
printf("排序前: \n");
for(i=0;iN;i++)
printf("%d\t",a[i]);
printf("请选择: 1表示冒泡法,2表示选择法: \n");
scanf("%d",method);
sort(a,method);
printf("排序后: \n");
for(i=0;iN;i++)
printf("%d\t",a[i]);
}
排序没有问题,但是你在打印的时候出错了
for(i=0;im;i++)
printf("%d",a[i]); #47;#47;这里打印的是数组元素a[i]的地址,应改为printf("%d" , a[i]);
printf("#92;n");
满意请采纳!!!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流