1.源代码
#include "stdio.h"
#define N 10
int search(int s[],int x,int n)
{
int i,num=-1;
for(i=0;i<n;i++){
if(x==s[i])
num=i;
}
return num;
}
int main()
{ int indx,m,a[N]={10,20,35,40,43,44,45,50,51,60};
scanf("%d",&m);
indx=search(a,m,N);
if(indx>=0)
printf("index=%d\n",indx);
else
printf("NOEXIST\n");
return 0;
}
2.代码思路
#include "stdio.h"
是一个预处理指令,用于包含标准输入输出头文件,以便使用printf()
和scanf()
函数。#define N 10
是一个宏定义,用于定义一个常量N
,其值为10
,表示数组的最大长度。int search(int s[],int x,int n)
是一个自定义函数,用于在一个整数数组中查找一个整数的索引。它有三个参数:int s[]
是一个整数数组,用于存储已经排好序的数值。int x
是一个整数,用于表示要查找的数值。int n
是一个整数,用于表示数组中的数值的个数。
- 函数体中,首先定义了一个整数变量
num
,并初始化为-1
,用于存储查找结果,如果没有找到,就返回-1
;然后使用一个for
循环,从i = 0
到i < n
,每次循环中判断x
是否等于数组的第i
个元素s[i]
,如果是,就将i
赋值给num
,表示找到了索引;最后返回num
的值。 int main()
是程序的主函数,程序的执行从这里开始。- 函数体中,首先定义了一个长度为
N
的整数数组a
,并初始化为{10,20,35,40,43,44,45,50,51,60}
,表示已经排好序的数组;以及两个整数变量indx
和m
,用于表示查找结果和要查找的数值。 - 然后使用
scanf("%d",&m)
函数,从标准输入读取一个整数,赋值给m
,表示要查找的数值。 - 接着调用
search(a,m,N)
函数,将数组a
、要查找的数值m
、以及数组的长度N
作为参数传递,函数会返回m
在数组a
中的索引,赋值给indx
。 - 然后判断
indx
是否大于或等于0
,如果是,就使用printf("index=%d\n",indx)
函数,打印indx
的值,表示找到了索引;如果不是,就使用printf("NOEXIST\n")
函数,打印 NOEXIST,表示没有找到索引。 - 最后使用
return 0
语句,结束主函数。
一个可能的输出样例是:
输入:35
输出:index=2
这表示用户输入了 35
,在数组 a
中的索引是 2
,所以打印 index=2。