当前位置:首页 » 编程语言 » c语言指针实现排序

c语言指针实现排序

发布时间: 2022-10-10 17:01:13

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语言程序设计之中的 指针排序

#include<stdio.h>
void input(int *p,int num)
{
//
int a[10]; 不能在子函数中再定义了,要用形参对应的实参, 子函数中定义的是局部变量,函数完成时,变量就释放了。
//
for(p=a;p<a+10;p++)
int i;
for(i=0;i<num;i++)
scanf("%d",p+i);
}
void sort(int *p,int num)
{
//
int a[10]; 同前
int i,j,temp;
//
for(p=a;p<a+10;p++)
for(i=0;i<num;i++) //数组下标从0开始
{
for(j=i+1;j<num;j++)
if(p[i]<p[j])
{
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
}
}
void output(int *p,int num)
{
//int a[10]; 同前
//
for(p=a;p<a+10;p++)
int i;
for(i=0;i<num;i++)
printf("%d ",*(p+i));
}
int main()
{
int a[10];
input(a,10);
sort(a,10);
output(a,10);
return 0;
}

Ⅲ C语言指针实现整数排序

#include<stdio.h>
intmain()
{
inta[3],i,n,j;
int*q;
q=&a[0];//这里是将数组的第一位的地址赋值给指针q,也是数组a的首地址
for(i=0;i<3;i++)
{
printf("请输出1个整数:");
scanf("%d",&a[i]);
}

for(j=0;j<2;j++)//简单的排序。
{
for(i=0;i<2;i++)
{
if(*(q+j)<*(q+1+i))
{
n=*(q+j);
*(q+j)=*(q+1+i);
*(q+1+i)=n;
}
}
}
printf("三个整数是:%d,%d,%d ",*q,*(q+1),*(q+2));
}

这道题的主要是弄清楚指针的加法和排序的方法。

Ⅳ C语言 指针 排序法

for(i=0;i<10;p++)
{
if(*pmax<*p)
pmax=p;
if(*pmin>*p)
pmin=p;
}

这里有错!~ for(i=0;i<10;p++)这里出错了~~`

Ⅳ 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语言 指针 字符串 排序

对指针数组分配个长度
可以这样
{
s[i]
=
(char
*)malloc(sizeof(char)
*
1024);
scanf("%s",s[i]);
}
最后记得释放
for(i=0;i<z;i++)
{
printf("%s:\t",s[i]);
free(s[i]);
}

Ⅶ c语言如何用指针排列字符

#include<stdio.h>
#include<string.h>
voidsort_str(char*str){//选择排序
//待补全部分
inti,j,k,t,len=strlen(str);
for(i=0;i<len-1;++i){
k=i;
for(j=i+1;j<len;++j){
if(str[k]>str[j])
k=j;
}
if(k!=i){
t=str[k];
str[k]=str[i];
str[i]=t;
}
}
}

intmain(){
charstr[101];
scanf("%s",str);
sort_str(str);//对字符串进行排序
printf("%s ",str);
return0;
}

Ⅷ C语言使用指针实现选择法排序。

#include<stdio.h>

voidprint_result(float*,int);

voidSelect_Sort(float*,int);

intmain()

inti;

floatarray[10];

float*pointer;

printf("请输入10个数:\n");

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

scanf("%f",&array[i]);

pointer=array;

Select_Sort(pointer,10);

print_result(pointer,10);

return0;

voidprint_result(float*p,intn)

{//输出结果

intk;

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

printf("%g\t",*(p+k));

voidSelect_Sort(float*pt,intn)

{//全用指针的选择排序法

inti,j,k;

floattempnum;

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

k=i;

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

if(*(pt+j)>*(pt+i))

k=j;

tempnum=*(pt+i);

*(pt+i)=*(pt+k);

*(pt+k)=tempnum;

(8)c语言指针实现排序扩展阅读:

其它方法:

voidSelectSort(intarr[],intn)

printf("\n选择排序法过程:\n");

inti,j,k,l,t;

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

k=i;

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

if(arr[j]<arr[k])

k=j;

if(k!=i)

t=arr[i];arr[i]=arr[k];arr[k]=t;

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

printf("%3c",arr[l]);

printf("\n");

热点内容
sql服务器名称什么时候能写ip 发布:2024-12-22 09:53:19 浏览:128
域控制服务器怎么设置ip 发布:2024-12-22 09:43:23 浏览:882
csvreaderpython 发布:2024-12-22 09:43:13 浏览:768
linux更改用户 发布:2024-12-22 09:35:19 浏览:505
信息的编程加工 发布:2024-12-22 09:33:48 浏览:116
移动办公专家服务器地址写什么 发布:2024-12-22 09:25:13 浏览:147
编程CBA 发布:2024-12-22 09:10:11 浏览:288
糖豆上传视频 发布:2024-12-22 09:09:24 浏览:856
canvas压缩上传图片 发布:2024-12-22 08:53:47 浏览:189
加工中心简单图案编程 发布:2024-12-22 08:38:12 浏览:446