系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。

喜欢的同学记得点赞、转发、收藏哦~

后续C语言经典100例将会以pdf和代码的形式发放到公众号

欢迎关注:计算广告生态 即时查收

1 题目

函数:find()

功能:用指针函数输出学生成绩寻找相同元素的指针

描述:比较两个有序数组的元素,输出两个数组中第一个相同的值

c语言指针前的综合题(C语言100题集合021-用指针函数输出学生成绩相同元素指针)(1)

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和代码的形式发放到公众号

同时也带来更多系列文章以及干货❤️!

,