在数组A[1..N]中查找值为k的元素,若找到输出其位置i(1<=i<=n),否则输出0作为标志。
函数接口定义:
Search(int a[],int n,int k);
其中 a
、 n
、k
都是用户传入的参数。a
为数组名,期中存了n
个整数,下标为1到n
;k
为待查数据元素;若找到了,返回其下标;否则,返回0。
裁判测试程序样例:
#include <stdio.h> Search(int a[],int n,int k); main() { int a[50],n,i,k; scanf("%d",&n); //接收数组元素个数 for(i=1;i<=n;i++) //依次接收各个元素的值 scanf("%d",&a[i]); scanf("%d",&k); // 接收待查元素值k int x=Search(a,n,k); if(x==0) printf("NONE\n"); else printf("%d\n",x); } /* 请在这里填写答案 */
输入样例1:
5
67 48 90 34 25
34
输出样例1:
4
输入样例2:
6
45 67 89 9 7 5 56
34
输出样例2:
NONE
int Search(int a[], int n, int k) {
for (int i = 1; i <= n; i++) {
if (a[i] == k) {
return i;
}
}
return 0;
}
找出数组A[1..N]中最大值和次大值。(数组中元素个数大于两个且值各不相同)
函数接口定义:
void FindMax(int a[],int n,int *pmax1,int *pmax2);
其中 a
和 n
是用户传入的参数。 a
为数组名, n
为数组中元素的个数,在下标从1到n
处存放。利用指针变量 pmax1
和pmax2
带出运算结果。 pmax1
为指向最大值的指针;pmax2
为指向次大值的指针。
裁判测试程序样例:
#include <stdio.h> void FindMax(int a[],int n,int *pmax1,int *pmax2); main() { int a[50],n,i; int max1,max2; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&a[i]); FindMax(a,n,&max1,&max2); printf("%d %d\n",max1,max2); } /* 请在这里填写答案 */
输入样例:
5
32 45 57 8754 33
输出样例:
8754 57