C语言实例009

大家好,我是一童,今日分享简单地指针查找:
1.寻找指定元素的指针

# include<stdio.h>/*寻找指定元素的指针*/
#define N 10
int Search(int *p,int n,int key)/*首元指针,元素个数,寻找值*/
{
	int *q;
	for(q=p;q<p+n;q++)
		if(*q==key)
			return q-p;
		return -1;
}
int *Find(int *p,int n,int key)/*返回指针型的函数*/
{
	int *q;
	for(q=p;q<p+n;q++)
		if(*q==key)
			return q;
		return NULL;
}
void main()
{
	int a[N],i,key;
	printf("请输入数组:");
	for(i=0;i<N;i++)
		scanf("%d",&a[i]);
	printf("\n");
	printf("输出数组元素:\n");
	for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
		printf("%d ",a[i]);
	printf("请输入您要查找的元素: ");
	scanf("%d",&key);
	printf("\n");
	printf("查找的数的是%d,在数组中的位置是:%d\n",key,Search(a,N,key));
	printf("查找的数的是%d,在数组中的地址值是:%d\n",key,Find(a,N,key));
}
  1. 寻找两个数组中相同的元素
#include <stdio.h>
#define N 5
int *Search(int *pa,int *pb,int a,int b)/*寻找两个数组中相同的元素*/
{
	int *pca,*pcb;
	pca=pa;pcb=pb;
	while(pca<pa+a&&pcb<pb+b)
	{
		if(*pca<*pcb)
			pca++;
		else if(*pca>*pcb)
			pcb++;
		else
			return pca;
	}
	return 0;
}
void main()
{
	int i,*p,a[N],b[N];
	printf("请输入数组a的元素:");
	for(i=0;i<N;i++)
		scanf("%d",&a[i]);
	printf("\n");
	printf("请输入数组b的元素:");
	for(i=0;i<N;i++)
		scanf("%d",&b[i]);
	printf("\n");
	printf("数组a的元素:\n");
	for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
		printf("%d ",a[i]);
	printf("\n");
	printf("数组b的元素:\n");
	for(i=0;i<sizeof(b)/sizeof(b[0]);i++)
		printf("%d ",b[i]);
	p=Search(a,b,sizeof(a)/sizeof(a[0]),sizeof(b)/sizeof(b[0]));
	printf("\n");
	if(p)
	printf("两个数组中第一个相同的元素为:%d\n",*p);
	else
		printf("没找到!!!\n");

}

若有错误或看不懂的地方,欢迎下方留言!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值