12.24

int a;
int * pa=&a;
int ** ppa=&pa;
类型 函数名(形参表列)
{
}
类型 数组名[常量]
int * a[10]
int x[10]

指针指向数组
前提
int a[10];
int *pa=a; //int pa=&a[0];
pa+i<>a+i<>&a[i]<>&pa[i]
*(pa+i)<
>
(a+i)<>a[i]<>pa[i]
遍历数组
int a[10];
int *pa=a; //int *pa=&a[0];
for(;pa<a+10;pa++)
{
scanf("%d’,pa);
//printf("%d",*pa);
}


习题1
int a,b,c,t;
int *pa,*pb,*pc;
pa=&a;
pb=&b;
pc=&c;

scanf()
if(a>b)
{
t=a;
a=b;
b=t;
}
if(*pa>*pb)
{
t=*pa;
*pa=*pb;
*pb=t;

}

习题3
void main()
{
void input(int a[],int size);//void input(int *,int );
int a[10];
input(a,10);
change1(a,10);
output(a,10);

}
void input(int a[],int size)//void input(int *a,int size)
{
int *p=a;
for(;a<p+size;a++)
{
scanf("%d",a);
}

}
void output(int a[],int size)//void input(int *a,int size)
{
int *p=a;
for(;a<p+size;a++)
{
printf("%d “,*a);
}
}
void output1(int a[],int size)//void input(int *a,int size)
{
int i;
for(i=0;i<size;i++)
{
printf(”%d ",a[i]);
}
}
void change(int a[],int size)
{
int min=*a;
int *p=a;
int i=0;
int t=0;
for(;a<p+size;a++,i++)
{
if(min>*a)
{
min=*a;
t=i;
}
}
if(t!==0)
{
x=a[t];
a[t]=a[0];
a[0]=x;
//exchange(&a[t],&a[0]);
}
}
void change1(int a[],int size)
{
// int min=*a;
int i;
int t=0,x;
void exchange(int pa,pb);
for(i=0;i<size;i++)
{
/if(min>a[i])
{
min=a[i];
t=i;
}
/
if(a[t]>a[i])//if(
(a+t)>
(a+i))
{
t=i;
}

 }
 if(t!==0)
 {
 	x=a[t];
 	a[t]=a[0];
 	a[0]=x;
 	//exchange(&a[t],&a[0]);
 }
 t=0;
  for(i=0;i<size;i++)
 {
 	
 	if(a[t]<a[i])//if(*(a+t)<*(a+i))
 	{
 		t=i;
 	}
 
 }
 if(t!=size-1)
 {
 	/*x=a[t];
 	a[t]=a[size-1];
 	a[size-1]=x;
 	*/
 	exchange(&a[t],&a[size-1]);
 	
 }

}
void exchange(int *pa,*pb)
{
int t;
t=*pa;
*pa=*pb;
*pb=t;
}
习题2
#include “stdio.h”
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},b[10];
int m;
scanf("%d",&m);

}
void fun(int *pa,int *pb,int size,int m)
{
int i;
for(i=0;i<m;i++)
{
pb[i]=pa[size-m+i];
}
for(i=m;i<size;i++)
{
pb[i]=pa[i-m];
}
}
void fun1(int *pa,int *pb,int size,int m)
{
int *a=pa,i;
pa=a+size-m;
for(i=0;i<m;i++)
{
*pb++=pa++;
}
/

for(i=0;i<m;i++,pa++,pb++)
{
*pb=pa;
}
/
pa=a;
for(i=0;i<size-m;i++)
{
*pb++=*pa++;
}

}
数组元素逆置
#include “stdio.h”
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
void fun1(int *pa,int size);
void output(int a[],int size);
fun1(a,10);
output(a,10);

}
void fun(int pa[],int size)
{
int i=0,j=size-1,t;
for(;i<j;i++,j–)
{
t=pa[i];
pa[i]=pa[j];
pa[j]=t;

}

}
void fun1(int *pa,int size)
{
int *pb=pa+size-1,t;
for(;pa<pb;pa++,pb–)
{
t=*pa;
*pa=*pb;
*pb=t;
}
}
void output(int a[],int size)//void input(int *a,int size)
{
int *p=a;
for(;a<p+size;a++)
{
printf("%d ",*a);
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值