n个数排序c语言
发布时间: 2023-10-15 03:11:05
㈠ c语言编程:用指向指针的指针的方法对n个整数排序并输出。
#include<stdio.h>
#include<stdlib.h>
#defineMAXSIZE100
voidswap(int*,int*);
voidsort(int**,int);
intmain(void)
{
inti;
intn;
//整形数组
intarray[MAXSIZE];
//指针数组
int*pArray[MAXSIZE];
printf("pleaseentern: ");
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 ",*pArray[i]);
}
return0;
}
//交换
voidswap(int*a,int*b)
{
inttemp=*a;
*a=*b;
*b=temp;
}
//排序
voidsort(int**array,intn)
{
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);
}
}
}
}
㈡ 用c语言编程:键盘上输入N个整数,使该数组中的数按照从小到大的次序排列(选择法排序)
#include "stdio.h"
#define N 10
int main(int argc,char *argv[]){
int a[N],i,j,k;
printf("Please enter %d integer(s)... ",N);
for(i=0;i<N;scanf("%d",a+i++));//输入
for(i=0;i<N;i++){//选择法排序
for(k=i,j=k+1;j<N;j++)
if(a[k]>a[j])
k=j;
if(k!=i)
j=a[k],a[k]=a[i],a[i]=j;
printf("%d ",a[i]);
}
printf(" ");
return 0;
}
代码图片和运行样例:
热点内容