c语言用指针函数数组排序 c语言中数组排序方法

编写一个C语言程序,利用指针对数组进行排序

#include stdio.h

专注于为中小企业提供网站建设、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业湖北免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

#include stdlib.h

#include time.h#define MAXlen 20void shell_sort(int *x, int n) { // 希尔排序

int h, j, k, t;

for (h = n / 2; h 0; h = h / 2) { // 控制增量

for (j = h; j n; j++) { t = *(x + j);

for (k = j - h; (k = 0 t *(x + k)); k -= h) {

*(x + k + h) = *(x + k);

}

*(x + k + h) = t;

}

}

}

int main() {

int i;

int iArr[MAXlen];

srand((unsigned int)time(NULL));

printf("\n排序前:\n");

for(i = 0 ; i MAXlen ; i++) {

iArr[i] = (unsigned int)rand() % 1000;

if(i % 10 == 0) printf("%\n");

printf("%5d",iArr[i]);

}

printf("\n");

shell_sort(iArr,MAXlen);

printf("\n排序后:\n");

for(i = 0 ; i MAXlen ; i++) {

if(i % 10 == 0) printf("%\n");

printf("%5d",iArr[i]);

}

printf("\n\n");

return 0;

}

C语言. 用指针与数组作为函数参数,按下面四种情况对数组float a[10]进行降序排序:

楼主,我只能实现1、4,我想,在C中应该不存在有2,3两种情况吧,稍后来写代码。

第一种:

#includestdio.h

void Calculate(float *pfloat);

int main()

{

float a[10];

int i;

for(i=0;i10;i++)

{

printf("Please Enter %d Data\n",i+1);

scanf("%f\n",a[i]);

}

Calculate(a);

printf("Calculate After");

for(i=0;i10;i++)

{

printf("%f ",a[i]);

}

getch();

return 0;

}

void Calculate(float *pfloat)

{

int i,j;

float ftemp;

for(j=0;j10;j++)

{

for(i=1;i10-j;i++)

{

if (*(pfloat+i-1) *(pfloat+i))

{

ftemp=*(pfloat+i-1);

*(pfloat+i-1)= *(pfloat+i);

*(pfloat+i)=ftemp;

}

}

}

}

第四种

#includestdio.h

void Calculate(float *pfloat);

int main()

{

float a[10],*pfloat;

int i;

for(i=0;i10;i++)

{

printf("Please Enter %d Data\n",i+1);

scanf("%f\n",a[i]);

}

pfloat=a;

Calculate(pfloat);

printf("Calculate After");

for(i=0;i10;i++)

{

printf("%f ",a[i]);

}

getch();

return 0;

}

void Calculate(float *pfloat)

{

int i,j;

float ftemp;

for(j=0;j10;j++)

{

for(i=1;i10-j;i++)

{

if (*(pfloat+i-1)  *(pfloat+i))

{

ftemp=*(pfloat+i-1);

*(pfloat+i-1)= *(pfloat+i);

*(pfloat+i)=ftemp;

}

}

}

}

编写一个C语言程序,利用指针对数组进行排序,并解释所编写的代码?

#include

stdio.h

void

Sort(

int

*s,

int

n

)

{

int

*p

=

s;

//定义一个指向数组首地址的指针

int

*q,

tmp;

for(

;

p

s+10;

p++

)

//当指针移动到数组的末端结束

{

for(

q

=

p

;

q

s+10;

q++

)

//按照插入排序的方式执行

{

if(

*q

*p

)

{

tmp

=

*p;

*p

=

*q;

*q

=

tmp;

}

}

}

}

int

main()

{

int

i;

int

s[10]

=

{9,8,7,6,5,4,3,2,1,0};

Sort(s,10);

//调用排序函数

for(

i

=

0;

i

10;

++i

)

//输出排序后的结果

{

printf("%d

",s[i]);

}

printf("\n");

return

0;

}

采用指针对数组进行排序c语言指针

/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */

#include stdio.h

#include stdlib.h

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

char *resort(char *a)

{

char cMin, cSwap;

int i, j, iIndex, iSize = strlen(a);

for(i=0; iiSize; i++)

{

cMin = 127;

for(j=i; jiSize; j++)

{

if(a[j] = cMin)

{

cMin = a[j];

iIndex = j;

}

}

cSwap = a[i];

a[i] = cMin;

a[iIndex] = cSwap;

}

return a;

}

int main(int argc, char *argv[])

{

char a[100];

gets(a);

puts(resort(a));

return 0;

}

C语言中的字符指针数组排序

完整程序如下:

#includestdio.h

void sort_string(char **p,int n){

int i,j;

char s[80];

for (i=0;in-1;i++){

for (j=i+1;jn;j++){

if (strcmp(*(p+i),*(p+j))0){

strcpy(s,*(p+i));strcpy(*(p+i),*(p+j));strcpy(*(p+j),s);

};};};

}

int main()

{

char *str[]={ "teacher", "student", "maneger", "employee", "telicent" };

int i,n=5;

sort_string(str,n);

for (i=0;in;i++) printf("%s\n",str[i]);

return 0;

}

c语言指针数组排序?

p是int类型指针,指向数组a的第1个元素即一个一维的数组{1,2,3}首地址所以p[1]相当于a[0][1]所以printf("%d\n",p[1]);

输出2 。 int **pp =pa 是声明了一个指向pa的指针,而pa又是指向a首地址的int类型指针。pa指向的是a的第一维,pa[0] = a[0] ,pp[2][1]相当于a[2][1]而a数组的[2]中只初始化了[2][0]位置的7,那[2][1]位置就是默认的值0,所以printf("%d\n",pp[2][1]);

输出0


分享名称:c语言用指针函数数组排序 c语言中数组排序方法
当前路径:http://pwwzsj.com/article/hhspho.html