系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。
喜欢的同学记得点赞、转发、收藏哦~
后续C语言经典100例将会以pdf和代码的形式发放到公众号
欢迎关注:计算广告生态 即时查收
1 题目函数:find()
功能:用指针函数输出学生成绩寻找相同元素的指针
描述:比较两个有序数组的元素,输出两个数组中第一个相同的值
2 思路
利用有序数组有序的特点
建立一个指针函数,这个函数返回值为指针类型,即一个地址。定义如下:
int*find(int*a,int*b,intm,intn);
在程序中调用该函数:
int*p=find(a,b,sizeof(a)/sizeof(a[0]),sizeof(b)/sizeof(b[0]));
返回一个指向整型变量的指针
3 代码
#include<stdio.h>
#include<stdlib.h>
/**
函数:find()
功能:寻找相同元素的指针
描述:比较两个有序数组的元素,输出两个数组中第一个相同的值
**/
int*find(int*a,int*b,intm,intn){
int*pa=a;
int*pb=b;
while(pa<a m&&pb<b n){
if(*pa<*pb){
pa ;
}
elseif(*pa>*pb){
pb ;
}
else{
returnpa;
}
}
}
intmain(intargc,charconst*argv[]){
int*p;
inta[]={2,5,7,9,11,34,56};//声明两个数组
intb[]={3,6,8,10,12,34,59};//声明两个数组
printf("两个数组的内容分别是:\n");
for(inti=0;i<sizeof(a)/sizeof(a[0]); i){//打印数组
printf("%d",*(a i));
}
printf("\n");
for(intj=0;j<sizeof(b)/sizeof(b[0]); j){//打印数组
printf("%d",*(b j));
}
p=find(a,b,sizeof(a)/sizeof(a[0]),sizeof(b)/sizeof(b[0]));
printf("\n相同的数字是:%d\n",*p);
}
示例结果:
$gccex021.c-odemo
$./demo
两个数组的内容分别是:
2579113456
36810123459
相同的数字是:34
--END--
喜欢本文的同学记得点赞、转发、收藏~
更多内容,欢迎大家关注我们的公众号:计算广告生态
后续C语言经典100例将会以pdf和代码的形式发放到公众号
同时也带来更多系列文章以及干货❤️!
,