[山东科技大学OJ]1611 Problem D: 编写函数:数组的下标 (Append Code)

 

Time Limit: 1 Sec  Memory Limit: 16 MB
Submit: 2803  Solved: 1790
[Submit][Status]

Description

 

 

         给出一个不超过N个元素的数组,用下标做查询操作。数组的下标一般为0~N-1之间,在这里数组的下标扩展到负数(即-1~-N),如-1表示倒数第1个元素,-k表示倒数第k个元素。
 
         编写两个函数get_array()和array_value()完成程序:
                   原型:int get_array(int a[]);
                   功能:按样例格式读取n个整数储存的数组a[]中,并返回a[]的元素个数。
                   原型:array_value(int a[], int n, int k);
                   功能:在n个元素的数组a[]中查找下标为k的元素并返回,k支持负下标。

 

         函数的调用格式见“Append Code”。

 

Input

 

 

         测试数据包含一个数组和若干整数k,至EOF结束。数组以一个非负整数N(N<=1000)开始,后接N个整数。k的取值范围是-N<=k<=N-1,当k>=0时,为正下标,k<0时为负下标。

 

Output

 

         对每组样例产生一个输出,输入产生一行输出。对于每行的N个元素,将前半部分和后半部分分别进行逆序输出。

 

 

Sample Input

10 0 1 2 3 4 5 6 7 8 9 1 -1

Sample Output

1 9

HINT

 

Append Code

[Submit][Status]


#include <stdio.h>

#include <stdlib.h>

#include <string.h>

int get_array(int a[])

{

   int n,i;

   scanf("%d",&n);

   for(i=0;i<n;i++)

   scanf("%d",&a[i]);

   return n;

}

int array_value(int a[],int n,int k)

{

   int i,t;

 

   if(k>=0)

    return a[k];

   else

    t=n+k;

   return a[t];

}

 

int main()

{

    int size, arr[1000], m, k;

    size = get_array(arr);

    while(scanf("%d", &k) != EOF)

        printf("%d\n", array_value(arr, size, k));

    return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值