#include<stdio.h>
int hanshu(int key, int num[], int len);
int main()
{
int num[5], i, key;
for (int i = 0; i < 5; i++)
{
scanf("%d", &num[i]);
}
scanf("%d", &key);
if (hanshu(key, num, 5) > 0)
printf("存在");
else
printf("不存在");
int hanshu(int key, int num[], int len)
{
for (int i = 0; i < len; i++)
{
if (num[i] == key)
{
return 1;
}
}
return 0;
}
可以帮我解读一下这段程序
代码有错误,已经修改,已经添加了注释,如下:
#include<stdio.h>
int hanshu(int key, int num[], int len);
int main()
{
int num[5], i, key;
for (int i = 0; i < 5; i++) //循环读取5个数,存入num数组
{
scanf("%d", &num[i]);
}
scanf("%d", &key); //读取需要查找的数,用key保存
if( hanshu(key,num,5) >= 0) //调用hanshu查找key是否在num数组中
printf("存在");
else
printf("不存在");
return 0;
}
int hanshu(int key, int num[], int len)
{
for (int i = 0; i < len; i++) //循环遍历数组
{
if (num[i] == key) //如果num[i]等于key,说明找到
{
return i;//返回下标
}
}
return -1; //这里返回-1,表示未找到,因为数组下标从0开始,所以这里最好返回-1
}
输入5个整数,输入查找数key,调用hanshu函数,遍历数组逐个元素和key比较,如果相等返回1,找不到返回0
main函数判断是否找到,找到输出“存在”,找不到输出“不存在”