#include<stdio.h>
#include<stdlib.h>
#define MAX 100typedef struct list {
int a[MAX];
int length; }List;
(1)
void creat(List l) {
> int i;
> printf("元素的个数:");
> scanf("%d",&l.length);
> for(i=0;i<l.length;i++)
> {
> scanf("%d",&l.a[i]);
> } }
(2)//main函数中也要改变
void creat(List *l)
{
int i;
printf("元素的个数:");
scanf("%d",&l->length);
for(i=0;i<l->length;i++)
{
scanf("%d",&l->a[i]);
}
}
int searcht(List *l,int kay) {
int i;
for(i=0;ilength;i++)
{
if(l->a[i]==kay)
{
return i;
}
}
return -1; }int main() {
List ae;
int j,k;
creat(ae);
printf(“查找元素:”);
scanf("%d",&k);
j=searcht(&ae,k);
if(j!=-1)
{
printf(“j的位置为 :%d”,j+1);
}
else{
printf(“no find\n”);
}
return 0; }
(1)的结果
(2)的结果
第一种就会出现错误,第二种不会,为何?