c语言,这个赋值①有什么作用?

#include"stdio.h"#defineNUM20input(int*a){inti,n;printf("Enternumbertoelements,0<n<%d... #include "stdio.h"
#define NUM 20
input(int *a)
{
int i,n;
printf("Enter number to elements, 0<n<%d\n",NUM);
scanf("%d",&n);
printf("Input %d numbers please!\n",n);
for(i=0;i<n;i++)
scanf("%d",a+i);
return n;
}
search(int *a,int x,int n)
{
int i,p;
i=0;
a[n]=x; //①
while(x!=a[i])
i++;
if(i==n)
p=-1;
else
p=i;
return p;
}

main()
{
int a[NUM],x,n,p;
n=input(a);
printf("enter the number to search:x=");
scanf("%d",&x);
p=search(a,x,n);
if(p!=-1)
printf("%d index is:%d\n",x,p+1);
else
printf("%d cannot be found!\n",x);
}
展开
 我来答
百度网友7991f3d84
2011-07-31 · TA获得超过280个赞
知道小有建树答主
回答量:325
采纳率:0%
帮助的人:208万
展开全部
赋值①用来作为while循环的结束条件,a[n]=x; 将x的值保存在最后一个输入数的后面,这样
while(x!=a[i])
i++;
当while循环到n时,此时x == a[n] ,此时退出while循环,从而可再根据i 是否等于n来判断是否找到。
别外一点,请注意点编程规范,input函数和search函数最好加下返回值
追问
额。我是刚开始学c语言呢,还不太明白,你说的那个加返回值是?怎么加?
追答
你这个程序的作用是输入n个数,然后再在n个数里面判断是否存在x,
while(x!=a[i])
i++;
就是在循环找,在n个数里面找到就退出,如果你不加a[n]=x;这句,当你输入的n个数里面不存在的时候,while循环还会一直运行,而不会退出。
返回值是指你定义的时候,指定一下返回值,如int input(int *a)
masterlonely
2011-07-31 · TA获得超过204个赞
知道小有建树答主
回答量:85
采纳率:0%
帮助的人:134万
展开全部
确保while能退出
追问
说清楚点,那个返回值怎么加?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式