#include<stdio.h>
int search(int *apt,int n,int key)
{
int *p;
for(p=apt;p<apt+n;p++) //寻找特定元素
if(*p==key)
return p-apt;
return -1;
}
int b[]={90,80,70,60,50,40,772,294,1065,184};
int a[]={90,80,70,60,50,40,30,20,10,9,8,7,6,5,42,40,50,1,2,3}; //在这里定义的好处是,可以在任意函数中通用
main() //main拼错了
{
int i;
int c[sizeof(b)/sizeof(b[0])];
int q=0;
int d;
printf("The elements of array a is:\n"); //输出a数组中的元素
for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
{
printf(" %d",a[i]);
}
printf("\n");
printf("The elements of array b is:"); //输出b数组中的元素
for(i=0;i<sizeof(b)/sizeof(b[0]);i++)
{
printf(" %d",b[i]);
}
printf("\n");
for(i=0;i<sizeof(b)/sizeof(b[0]);i++) //对b中数组的每一个数字都和a中的数字对比一次
{
int key;
key=b[i]; //关键字是b数组中第i个数字
d=search(a,sizeof(a)/sizeof(a[0]),key); //寻找关键字
if(d>-1)
{
c[q]=key; //这里要保存数组元素的值key,而不是数组下标d
q=q+1; //这句话应该放在后面,因为数组下标从0开始
}
}
printf("The number is:\n",q);
for(i=0;i<q;i++) //这里i的取值应该为i<q
printf(" %d",c[i]);
return 0;
追问我目前还没有学到指针,所以上面的代码有很多都看不懂,能麻烦你不用指针完成吗?谢谢了!